package cmd import ( "fmt" "log" "os" "github.com/spf13/cobra" "github.com/insertr/cli/pkg/content" ) var enhanceCmd = &cobra.Command{ Use: "enhance [input-dir]", Short: "Enhance HTML files by injecting content from database", Long: `Enhance processes HTML files and injects latest content from the database while adding editing capabilities. This is the core build-time enhancement process that transforms static HTML into an editable CMS.`, Args: cobra.ExactArgs(1), Run: runEnhance, } var ( outputDir string apiURL string apiKey string siteID string mockContent bool ) func init() { rootCmd.AddCommand(enhanceCmd) enhanceCmd.Flags().StringVarP(&outputDir, "output", "o", "./dist", "Output directory for enhanced files") enhanceCmd.Flags().StringVar(&apiURL, "api-url", "", "Content API URL") enhanceCmd.Flags().StringVar(&apiKey, "api-key", "", "API key for authentication") enhanceCmd.Flags().StringVarP(&siteID, "site-id", "s", "demo", "Site ID for content lookup") enhanceCmd.Flags().BoolVar(&mockContent, "mock", true, "Use mock content for development") } func runEnhance(cmd *cobra.Command, args []string) { inputDir := args[0] // Validate input directory if _, err := os.Stat(inputDir); os.IsNotExist(err) { log.Fatalf("Input directory does not exist: %s", inputDir) } // Create content client var client content.ContentClient if mockContent { fmt.Printf("๐Ÿงช Using mock content for development\n") client = content.NewMockClient() } else { if apiURL == "" { log.Fatal("API URL required when not using mock content (use --api-url)") } fmt.Printf("๐ŸŒ Using content API: %s\n", apiURL) client = content.NewHTTPClient(apiURL, apiKey) } // Create enhancer enhancer := content.NewEnhancer(client, siteID) fmt.Printf("๐Ÿš€ Starting enhancement process...\n") fmt.Printf("๐Ÿ“ Input: %s\n", inputDir) fmt.Printf("๐Ÿ“ Output: %s\n", outputDir) fmt.Printf("๐Ÿท๏ธ Site ID: %s\n\n", siteID) // Enhance directory if err := enhancer.EnhanceDirectory(inputDir, outputDir); err != nil { log.Fatalf("Enhancement failed: %v", err) } fmt.Printf("\nโœ… Enhancement complete! Enhanced files available in: %s\n", outputDir) }