2022-12-14 18:39:50 +01:00

73 lines
3.8 KiB
Go

package cmd
import (
"github.com/rsteube/carapace"
"github.com/rsteube/carapace-bin/pkg/actions/os"
"github.com/rsteube/carapace-bin/pkg/actions/tools/git"
"github.com/spf13/cobra"
)
var amCmd = &cobra.Command{
Use: "am",
Short: "Apply a series of patches from a mailbox",
Run: func(cmd *cobra.Command, args []string) {},
GroupID: groups[group_main].ID,
}
func init() {
carapace.Gen(amCmd).Standalone()
amCmd.Flags().BoolP("3way", "3", false, "allow fall back on 3way merging if needed")
amCmd.Flags().StringS("C", "C", "", "pass it through git-apply")
amCmd.Flags().Bool("abort", false, "restore the original branch and abort the patching operation")
amCmd.Flags().Bool("committer-date-is-author-date", false, "lie about committer date")
amCmd.Flags().Bool("continue", false, "continue applying patches after resolving a conflict")
amCmd.Flags().String("directory", "", "pass it through git-apply")
amCmd.Flags().String("exclude", "", "pass it through git-apply")
amCmd.Flags().StringP("gpg-sign", "S", "", "GPG-sign commits")
amCmd.Flags().Bool("ignore-date", false, "use current timestamp for author date")
amCmd.Flags().Bool("ignore-space-change", false, "pass it through git-apply")
amCmd.Flags().Bool("ignore-whitespace", false, "pass it through git-apply")
amCmd.Flags().String("include", "", "pass it through git-apply")
amCmd.Flags().BoolP("interactive", "i", false, "run interactively")
amCmd.Flags().BoolP("keep", "k", false, "pass -k flag to git-mailinfo")
amCmd.Flags().Bool("keep-cr", false, "pass --keep-cr flag to git-mailsplit for mbox format")
amCmd.Flags().Bool("keep-non-patch", false, "pass -b flag to git-mailinfo")
amCmd.Flags().BoolP("message-id", "m", false, "pass -m flag to git-mailinfo")
amCmd.Flags().Bool("no-keep-cr", false, "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr")
amCmd.Flags().StringS("p", "p", "", "pass it through git-apply")
amCmd.Flags().String("patch-format", "", "format the patch(es) are in")
amCmd.Flags().BoolP("quiet", "q", false, "be quiet")
amCmd.Flags().Bool("quit", false, "abort the patching operation but keep HEAD where it is")
amCmd.Flags().String("quoted-cr", "", "pass it through git-mailinfo")
amCmd.Flags().Bool("reject", false, "pass it through git-apply")
amCmd.Flags().Bool("rerere-autoupdate", false, "update the index with reused conflict resolution if possible")
amCmd.Flags().BoolP("resolved", "r", false, "synonyms for --continue")
amCmd.Flags().String("resolvemsg", "", "override error message when patch failure occurs")
amCmd.Flags().BoolP("scissors", "c", false, "strip everything before a scissors line")
amCmd.Flags().String("show-current-patch", "", "show the patch being applied")
amCmd.Flags().BoolP("signoff", "s", false, "add a Signed-off-by trailer to the commit message")
amCmd.Flags().Bool("skip", false, "skip the current patch")
amCmd.Flags().BoolP("utf8", "u", false, "recode into utf8 (default)")
amCmd.Flags().String("whitespace", "", "pass it through git-apply")
rootCmd.AddCommand(amCmd)
amCmd.Flag("gpg-sign").NoOptDefVal = " "
amCmd.Flag("show-current-patch").NoOptDefVal = " "
carapace.Gen(amCmd).FlagCompletion(carapace.ActionMap{
"directory": carapace.ActionDirectories(),
"exclude": carapace.ActionDirectories(),
"gpg-sign": os.ActionGpgKeyIds(),
"include": carapace.ActionDirectories(),
"patch-format": carapace.ActionValues("mbox", "mboxrd", "stgit", "stgit-series", "hg"),
"quoted-cr": carapace.ActionValuesDescribed(
"nowarn", "Git will do nothing when such a CRLF is found.",
"warn", "Git will issue a warning for each message if such a CRLF is found.",
"strip", "Git will convert those CRLF to LF.",
),
"show-current-patch": carapace.ActionValues("diff", "raw"),
"whitespace": git.ActionWhitespaceModes(),
})
}