package cmd import ( "fmt" "os" "github.com/Pingu-Studio/MaidnCLI/internal/bootstrap" "github.com/Pingu-Studio/MaidnCLI/internal/config" "github.com/Pingu-Studio/MaidnCLI/internal/ui" "github.com/spf13/cobra" ) var bootstrapConfigPath string var bootstrapOutputPath string var bootstrapCmd = &cobra.Command{ Use: "bootstrap", Short: "Bootstrap Talos and Flux from config or an interactive wizard.", Run: runBootstrap, } func init() { rootCmd.AddCommand(bootstrapCmd) bootstrapCmd.Flags().StringVar(&bootstrapConfigPath, "config", "", "Path to bootstrap config YAML") bootstrapCmd.Flags().StringVar(&bootstrapOutputPath, "out", "maidn-bootstrap.yaml", "Path to save generated config") } func runBootstrap(cmd *cobra.Command, args []string) { var cfg config.Config var err error if bootstrapConfigPath != "" { cfg, err = config.Load(bootstrapConfigPath) } else { cfg, err = ui.RunBootstrapWizard() if err == nil { err = config.Save(bootstrapOutputPath, cfg) if err == nil { fmt.Printf("[INFO] Saved config to %s\n", bootstrapOutputPath) } } } if err != nil { fmt.Printf("[ERROR] %v\n", err) os.Exit(1) } runner := bootstrap.Runner{Config: cfg} if err = runner.Run(); err != nil { fmt.Printf("[ERROR] %v\n", err) os.Exit(1) } }