diff --git a/cmd/new.go b/cmd/new.go index baf9f31..09b3f3a 100644 --- a/cmd/new.go +++ b/cmd/new.go @@ -2,6 +2,7 @@ package cmd import ( "fmt" + "os" "github.com/spf13/cobra" "github.com/warrenronsiek/ctask/internal/config" @@ -97,6 +98,20 @@ func runNew(cmd *cobra.Command, args []string) error { return err } + if newProject { + if !workspace.GitAvailable() { + fmt.Println("[ctask] git not found; skipped repository initialization") + } else { + if err := workspace.RunGitInit(ws.Path); err != nil { + fmt.Fprintf(os.Stderr, "[ctask] warning: %v\n", err) + } + } + // Seed-wins: EnsureGitignore is a no-op when a seed provided .gitignore. + if err := workspace.EnsureGitignore(ws.Path); err != nil { + fmt.Fprintf(os.Stderr, "[ctask] warning: failed to create .gitignore: %v\n", err) + } + } + relPath := workspace.RelativePath(root, ws.Path) fmt.Printf("[ctask] created %s\n", relPath)