## Summary - Extract PHP/Laravel commands to `core/php` repo (42 files, standalone module) - Extract CI/release + SDK commands to `core/ci` repo (10 files) - Remove `internal/variants/` build tag system entirely - Move all 30 remaining command packages from `internal/cmd/` to top-level `cmd/` - Rewrite `main.go` with direct imports — no more variant selection - PHP and CI are now optional via commented import lines in main.go Co-authored-by: Claude <developers@lethean.io> Reviewed-on: #2 Co-authored-by: Charon <charon@lthn.ai> Co-committed-by: Charon <charon@lthn.ai>
38 lines
1.2 KiB
Go
38 lines
1.2 KiB
Go
// Package setup provides workspace bootstrap and package cloning commands.
|
|
//
|
|
// Two modes of operation:
|
|
//
|
|
// REGISTRY MODE (repos.yaml exists):
|
|
// - Clones all repositories defined in repos.yaml into packages/
|
|
// - Skips repos that already exist
|
|
// - Supports filtering by type with --only
|
|
//
|
|
// BOOTSTRAP MODE (no repos.yaml):
|
|
// - Clones core-devops to set up the workspace foundation
|
|
// - Presents an interactive wizard to select packages (unless --all)
|
|
// - Clones selected packages
|
|
//
|
|
// Flags:
|
|
// - --registry: Path to repos.yaml (auto-detected if not specified)
|
|
// - --only: Filter by repo type (foundation, module, product)
|
|
// - --dry-run: Preview what would be cloned
|
|
// - --all: Skip wizard, clone all packages (non-interactive)
|
|
// - --name: Project directory name for bootstrap mode
|
|
// - --build: Run build after cloning
|
|
//
|
|
// Uses gh CLI with HTTPS when authenticated, falls back to SSH.
|
|
package setup
|
|
|
|
import (
|
|
"forge.lthn.ai/core/go/pkg/cli"
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
func init() {
|
|
cli.RegisterCommands(AddSetupCommands)
|
|
}
|
|
|
|
// AddSetupCommands registers the 'setup' command and all subcommands.
|
|
func AddSetupCommands(root *cobra.Command) {
|
|
AddSetupCommand(root)
|
|
}
|