package cmd import ( "fmt" "path/filepath" "github.com/spf13/cobra" "printer.backend/internal/svgtemplate" ) var ( sizeFlag float64 bleedFlag float64 marginFlag float64 paddingFlag float64 outputFlag string ) var generateTemplateCmd = &cobra.Command{ Use: "template", Short: "Generate a square SVG mask template with bleed and margins", RunE: func(cmd *cobra.Command, args []string) error { data := svgtemplate.Build(sizeFlag, bleedFlag, marginFlag, paddingFlag) outPath := filepath.Join(svgtemplate.OutputDir, filepath.Base(outputFlag)) if err := svgtemplate.WriteFile(outputFlag, data); err != nil { return fmt.Errorf("write svg: %w", err) } cmd.Printf("Template erfolgreich generiert: %s\n", outPath) return nil }, } func init() { rootCmd.AddCommand(generateTemplateCmd) generateTemplateCmd.Flags().Float64VarP(&sizeFlag, "size", "s", 100.0, "Size of the final square product in mm") generateTemplateCmd.Flags().Float64VarP(&bleedFlag, "bleed", "b", 2.0, "Bleed (Überdruck) in mm") generateTemplateCmd.Flags().Float64VarP(&marginFlag, "margin", "m", 5.0, "Margin to the outer elements in mm") generateTemplateCmd.Flags().Float64VarP(&paddingFlag, "padding", "p", 3.0, "Inner padding (safety margin) in mm") generateTemplateCmd.Flags().StringVarP(&outputFlag, "output", "o", "mask_template.svg", "Output file path") }