diff options
author | Michael Muré <batolettre@gmail.com> | 2018-09-15 14:16:37 +0200 |
---|---|---|
committer | Michael Muré <batolettre@gmail.com> | 2018-09-15 14:16:37 +0200 |
commit | 6b732d4535fc31e37485c7b496f2bbe0c854f661 (patch) | |
tree | bf38c4f55a298c61d2f78e3f5167fa2f23b0db14 /commands/add.go | |
parent | bcf2b6dbe64c789f5519db1ff715e995c7c67fda (diff) | |
download | git-bug-6b732d4535fc31e37485c7b496f2bbe0c854f661.tar.gz |
cmd: rename 'new' into 'add' to have a verb
Diffstat (limited to 'commands/add.go')
-rw-r--r-- | commands/add.go | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/commands/add.go b/commands/add.go new file mode 100644 index 00000000..3fa75f26 --- /dev/null +++ b/commands/add.go @@ -0,0 +1,75 @@ +package commands + +import ( + "fmt" + + "github.com/MichaelMure/git-bug/cache" + "github.com/MichaelMure/git-bug/input" + "github.com/spf13/cobra" +) + +var ( + addTitle string + addMessage string + addMessageFile string +) + +func runAddBug(cmd *cobra.Command, args []string) error { + var err error + + if addMessageFile != "" && addMessage == "" { + addMessage, err = input.FromFile(addMessageFile) + if err != nil { + return err + } + } + + backend, err := cache.NewRepoCache(repo) + if err != nil { + return err + } + defer backend.Close() + + if addMessage == "" || addTitle == "" { + addTitle, addMessage, err = input.BugCreateEditorInput(backend.Repository(), addTitle, addMessage) + + if err == input.ErrEmptyTitle { + fmt.Println("Empty title, aborting.") + return nil + } + if err != nil { + return err + } + } + + b, err := backend.NewBug(addTitle, addMessage) + if err != nil { + return err + } + + fmt.Printf("%s created\n", b.HumanId()) + + return nil +} + +var addCmd = &cobra.Command{ + Use: "add", + Short: "Create a new bug", + RunE: runAddBug, +} + +func init() { + RootCmd.AddCommand(addCmd) + + addCmd.Flags().SortFlags = false + + addCmd.Flags().StringVarP(&addTitle, "title", "t", "", + "Provide a title to describe the issue", + ) + addCmd.Flags().StringVarP(&addMessage, "message", "m", "", + "Provide a message to describe the issue", + ) + addCmd.Flags().StringVarP(&addMessageFile, "file", "F", "", + "Take the message from the given file. Use - to read the message from the standard input", + ) +} |