package cli import ( "github.com/spf13/cobra" "gitea.maximumdirect.net/eric/seriatim/internal/config" "gitea.maximumdirect.net/eric/seriatim/internal/trim" ) func newTrimCommand() *cobra.Command { var opts config.TrimOptions cmd := &cobra.Command{ Use: "trim", Short: "Trim an existing seriatim transcript artifact by segment ID", RunE: func(cmd *cobra.Command, args []string) error { trimOpts := opts if !cmd.Flags().Changed("output-schema") { trimOpts.OutputSchema = "" } cfg, err := config.NewTrimConfig(trimOpts) if err != nil { return err } return trim.Run(cmd.Context(), cfg) }, } flags := cmd.Flags() flags.StringVar(&opts.InputFile, "input-file", "", "input seriatim transcript artifact JSON file") addOutputFileFlag(cmd, &opts.OutputFile) addReportFileFlag(cmd, &opts.ReportFile) flags.StringVar(&opts.Keep, "keep", "", "segment ID selector to keep (for example: 1-10,15)") flags.StringVar(&opts.Remove, "remove", "", "segment ID selector to remove (for example: 1-10,15)") addTrimOutputSchemaFlag(cmd, &opts.OutputSchema) flags.BoolVar(&opts.AllowEmpty, "allow-empty", false, "allow trimming to an empty transcript") return cmd }