package main import ( "fmt" "io" "os" "github.com/spf13/cobra" "sourcecraft.dev/bigbes/confluence-md-utilities/converter" ) var convertOutput string var convertCmd = &cobra.Command{ Use: "convert [input.md]", Short: "Convert Markdown to Confluence XML", Long: "Convert a Markdown file to Confluence storage format XML. Reads from stdin if no file is specified.", Args: cobra.MaximumNArgs(1), RunE: func(cmd *cobra.Command, args []string) error { var input []byte var err error if len(args) > 0 { input, err = os.ReadFile(args[0]) } else { input, err = io.ReadAll(os.Stdin) } if err != nil { return fmt.Errorf("reading input: %w", err) } result, err := converter.MarkdownToConfluence(input) if err != nil { return fmt.Errorf("converting: %w", err) } if convertOutput != "" { return os.WriteFile(convertOutput, []byte(result), 0644) } fmt.Print(result) return nil }, } func init() { convertCmd.Flags().StringVarP(&convertOutput, "output", "o", "", "Output file (default: stdout)") rootCmd.AddCommand(convertCmd) }