package cmd import ( "github.com/rsteube/carapace" "github.com/rsteube/carapace-bin/pkg/actions/tools/git" "github.com/spf13/cobra" ) var formatPatchCmd = &cobra.Command{ Use: "format-patch", Short: "Prepare patches for e-mail submission", Run: func(cmd *cobra.Command, args []string) {}, GroupID: groups[group_main].ID, } func init() { carapace.Gen(formatPatchCmd).Standalone() formatPatchCmd.Flags().String("add-header", "", "add email header") formatPatchCmd.Flags().String("attach", "", "attach the patch") formatPatchCmd.Flags().String("base", "", "add prerequisite tree info to the patch series") formatPatchCmd.Flags().String("cc", "", "add Cc: header") formatPatchCmd.Flags().String("cover-from-description", "", "generate parts of a cover letter based on a branch's description") formatPatchCmd.Flags().Bool("cover-letter", false, "generate a cover letter") formatPatchCmd.Flags().String("creation-factor", "", "percentage by which creation is weighted ") formatPatchCmd.Flags().String("filename-max-length", "", "max length of output filename") formatPatchCmd.Flags().String("from", "", "set From address to (or committer ident if absent)") formatPatchCmd.Flags().Bool("ignore-if-in-upstream", false, "don't include a patch matching a commit upstream") formatPatchCmd.Flags().String("in-reply-to", "", "make first mail a reply to ") formatPatchCmd.Flags().String("inline", "", "inline the patch") formatPatchCmd.Flags().String("interdiff", "", "show changes against in cover letter or single patch") formatPatchCmd.Flags().BoolP("keep-subject", "k", false, "don't strip/add [PATCH]") formatPatchCmd.Flags().Bool("no-binary", false, "don't output binary diffs") formatPatchCmd.Flags().BoolP("no-numbered", "N", false, "use [PATCH] even with multiple patches") formatPatchCmd.Flags().BoolP("no-stat", "p", false, "show patch format instead of default (patch + stat)") formatPatchCmd.Flags().BoolP("numbered", "n", false, "use [PATCH n/m] even with a single patch") formatPatchCmd.Flags().Bool("numbered-files", false, "use simple number sequence for output file names") formatPatchCmd.Flags().StringP("output-directory", "o", "", "store resulting files in ") formatPatchCmd.Flags().Bool("progress", false, "show progress while generating patches") formatPatchCmd.Flags().BoolP("quiet", "q", false, "don't print the patch filenames") formatPatchCmd.Flags().String("range-diff", "", "show changes against in cover letter or single patch") formatPatchCmd.Flags().StringP("reroll-count", "v", "", "mark the series as Nth re-roll") formatPatchCmd.Flags().Bool("rfc", false, "use [RFC PATCH] instead of [PATCH]") formatPatchCmd.Flags().String("signature", "", "add a signature") formatPatchCmd.Flags().String("signature-file", "", "add a signature from a file") formatPatchCmd.Flags().BoolP("signoff", "s", false, "add a Signed-off-by trailer") formatPatchCmd.Flags().String("start-number", "", "start numbering patches at instead of 1") formatPatchCmd.Flags().Bool("stdout", false, "print patches to standard out") formatPatchCmd.Flags().String("subject-prefix", "", "use [] instead of [PATCH]") formatPatchCmd.Flags().String("suffix", "", "use instead of '.patch'") formatPatchCmd.Flags().String("thread", "", "enable message threading, styles: shallow, deep") formatPatchCmd.Flags().String("to", "", "add To: header") formatPatchCmd.Flags().Bool("zero-commit", false, "output all-zero hash in From header") formatPatchCmd.Flag("from").NoOptDefVal = " " formatPatchCmd.Flag("attach").NoOptDefVal = " " formatPatchCmd.Flag("inline").NoOptDefVal = " " formatPatchCmd.Flag("thread").NoOptDefVal = " " rootCmd.AddCommand(formatPatchCmd) carapace.Gen(formatPatchCmd).FlagCompletion(carapace.ActionMap{ "output-directory": carapace.ActionDirectories(), "thread": carapace.ActionValues("shallow", "deep"), }) carapace.Gen(formatPatchCmd).PositionalCompletion( git.ActionRefRanges(git.RefOption{}.Default()), ) }