package main import ( "fmt" "path/filepath" "github.com/orchard9/rdev/internal/sdlc" "github.com/spf13/cobra" ) var initProjectName string var initCmd = &cobra.Command{ Use: "init", Short: "Initialize .sdlc/ directory structure", RunE: func(_ *cobra.Command, _ []string) error { root := mustResolveRoot() name := initProjectName if name == "" { name = filepath.Base(root) } if err := sdlc.Init(root, name); err != nil { return err } if jsonOutput { return printJSON(map[string]string{ "status": "initialized", "root": root, "project": name, }) } fmt.Println("Initialized .sdlc/ structure") fmt.Printf(" Root: %s\n", root) fmt.Printf(" Project: %s\n", name) fmt.Println() fmt.Println("Created directories:") for _, dir := range sdlc.SubDirs() { fmt.Printf(" .sdlc/%s/\n", dir) } fmt.Println() fmt.Println("Next: sdlc feature create --title \"Feature Name\"") return nil }, } func init() { initCmd.Flags().StringVar(&initProjectName, "name", "", "project name (default: directory name)") rootCmd.AddCommand(initCmd) }