From 22a1ba56e591970f592bafb7de629b9c6576e1c0 Mon Sep 17 00:00:00 2001 From: Olivier Tremblay Date: Wed, 2 May 2018 09:45:01 -0400 Subject: [PATCH] I forgot some files --- cmd/jkl/assign.go | 36 ++++++++++++++++++++++++++++++++++++ cmd/jkl/flag.go | 34 ++++++++++++++++++++++++++++++++++ cmd/jkl/link.go | 30 ++++++++++++++++++++++++++++++ 3 files changed, 100 insertions(+) create mode 100644 cmd/jkl/assign.go create mode 100644 cmd/jkl/flag.go create mode 100644 cmd/jkl/link.go diff --git a/cmd/jkl/assign.go b/cmd/jkl/assign.go new file mode 100644 index 0000000..d498b63 --- /dev/null +++ b/cmd/jkl/assign.go @@ -0,0 +1,36 @@ +package main + +import ( + "errors" + "flag" + + "otremblay.com/jkl" +) + +type AssignCmd struct { + args []string + assignee string + issueKey string +} + +func NewAssignCmd(args []string) (*AssignCmd, error) { + ccmd := &AssignCmd{} + f := flag.NewFlagSet("assign", flag.ExitOnError) + f.Parse(args) + if len(f.Args()) < 2 { + return nil, ErrAssignNotEnoughArgs + } + ccmd.issueKey = f.Arg(0) + ccmd.assignee = f.Arg(1) + return ccmd, nil +} + +var ErrAssignNotEnoughArgs = errors.New("Not enough arguments, need issue key + assignee") + +func (ccmd *AssignCmd) Assign() error { + return jkl.Assign(ccmd.issueKey, ccmd.assignee) +} + +func (ccmd *AssignCmd) Run() error { + return ccmd.Assign() +} diff --git a/cmd/jkl/flag.go b/cmd/jkl/flag.go new file mode 100644 index 0000000..d49e1b5 --- /dev/null +++ b/cmd/jkl/flag.go @@ -0,0 +1,34 @@ +package main + +import ( + "errors" + "flag" + + "otremblay.com/jkl" +) + +type FlagCmd struct { + args []string + flg bool +} + +func NewFlagCmd(args []string, flg bool) (*FlagCmd, error) { + ccmd := &FlagCmd{flg: flg} + f := flag.NewFlagSet("flag", flag.ExitOnError) + f.Parse(args) + if len(f.Args()) < 1 { + return nil, ErrFlagNotEnoughArgs + } + ccmd.args = f.Args() + return ccmd, nil +} + +var ErrFlagNotEnoughArgs = errors.New("Not enough arguments, need at least one issue key") + +func (ccmd *FlagCmd) Flag() error { + return jkl.FlagIssue(ccmd.args, ccmd.flg) +} + +func (ccmd *FlagCmd) Run() error { + return ccmd.Flag() +} diff --git a/cmd/jkl/link.go b/cmd/jkl/link.go new file mode 100644 index 0000000..76b7d00 --- /dev/null +++ b/cmd/jkl/link.go @@ -0,0 +1,30 @@ +package main + +import ( + "errors" + "flag" + + "otremblay.com/jkl" +) + +type LinkCmd struct { + args []string +} + +func NewLinkCmd(args []string) (*LinkCmd, error) { + ccmd := &LinkCmd{} + f := flag.NewFlagSet("Link", flag.ExitOnError) + f.Parse(args) + ccmd.args = f.Args() + return ccmd, nil +} + +var ErrLinkNotEnoughArgs = errors.New("Not enough arguments, need at least two issue keys and a reason") + +func (ccmd *LinkCmd) Link() error { + return jkl.LinkIssue(ccmd.args) +} + +func (ccmd *LinkCmd) Run() error { + return ccmd.Link() +} \ No newline at end of file