40 lines
1.2 KiB
Go
40 lines
1.2 KiB
Go
package cli
|
|
|
|
import (
|
|
"github.com/spf13/cobra"
|
|
|
|
"gitea.maximumdirect.net/eric/seriatim/internal/config"
|
|
"gitea.maximumdirect.net/eric/seriatim/internal/normalize"
|
|
)
|
|
|
|
func newNormalizeCommand() *cobra.Command {
|
|
var opts config.NormalizeOptions
|
|
|
|
cmd := &cobra.Command{
|
|
Use: "normalize",
|
|
Short: "Normalize a transcript artifact into a standard seriatim output shape",
|
|
RunE: func(cmd *cobra.Command, args []string) error {
|
|
normalizeOpts := opts
|
|
if !cmd.Flags().Changed("output-schema") {
|
|
normalizeOpts.OutputSchema = ""
|
|
}
|
|
|
|
cfg, err := config.NewNormalizeConfig(normalizeOpts)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return normalize.Run(cmd.Context(), cfg)
|
|
},
|
|
}
|
|
|
|
flags := cmd.Flags()
|
|
flags.StringVar(&opts.InputFile, "input-file", "", "input transcript JSON file")
|
|
flags.StringVar(&opts.OutputFile, "output-file", "", "output transcript JSON file")
|
|
flags.StringVar(&opts.ReportFile, "report-file", "", "optional report JSON file")
|
|
flags.StringVar(&opts.OutputSchema, "output-schema", config.DefaultOutputSchema, "output JSON schema: seriatim-minimal, seriatim-intermediate, or seriatim-full")
|
|
flags.StringVar(&opts.OutputModules, "output-modules", config.DefaultOutputModules, "comma-separated output modules")
|
|
|
|
return cmd
|
|
}
|