aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvince <vincetiu8@gmail.com>2020-07-21 11:41:46 +0800
committerMichael Muré <batolettre@gmail.com>2020-07-28 14:30:06 +0200
commit9436cf4b8983699ef7a164f4036686dd83d345d4 (patch)
tree4117b85ef19a3526cda1bbd36a5c90fb679f8db5
parent7dbcca84c7a0b6658463e3e54690b8860b662b6e (diff)
downloadgit-bug-9436cf4b8983699ef7a164f4036686dd83d345d4.tar.gz
Move args parsing out of repo cache
-rw-r--r--cache/repo_cache_bug.go12
-rw-r--r--cache/repo_cache_test.go2
-rw-r--r--commands/rm.go12
3 files changed, 16 insertions, 10 deletions
diff --git a/cache/repo_cache_bug.go b/cache/repo_cache_bug.go
index 0c26cb38..c7e2ed34 100644
--- a/cache/repo_cache_bug.go
+++ b/cache/repo_cache_bug.go
@@ -363,21 +363,17 @@ func (c *RepoCache) NewBugRaw(author *IdentityCache, unixTime int64, title strin
// RemoveBug removes a bug from the cache and repo
// args[0] specifies the bug prefix to remove
// args[1] (if present) specifies the remote the bug was imported from
-func (c *RepoCache) RemoveBug(args []string) error {
- if len(args) == 0 {
- return fmt.Errorf("you must provide a bug prefix to remove")
- }
-
- b, err := c.ResolveBugPrefix(args[0])
+func (c *RepoCache) RemoveBug(prefix string, remote string) error {
+ b, err := c.ResolveBugPrefix(prefix)
if err != nil {
return err
}
- if len(args) == 1 {
+ if remote == "" {
err = bug.RemoveLocalBug(c.repo, b.Id())
} else {
- err = bug.RemoveRemoteBug(c.repo, args[1], b.Id())
+ err = bug.RemoveRemoteBug(c.repo, remote, b.Id())
}
if err != nil {
return err
diff --git a/cache/repo_cache_test.go b/cache/repo_cache_test.go
index 276da4be..e5f8a037 100644
--- a/cache/repo_cache_test.go
+++ b/cache/repo_cache_test.go
@@ -103,7 +103,7 @@ func TestCache(t *testing.T) {
require.NoError(t, err)
// Possible to delete a bug
- err = cache.RemoveBug([]string{bug1.Id().Human()})
+ err = cache.RemoveBug(bug1.Id().Human(), "")
require.NoError(t, err)
require.Equal(t, len(cache.AllBugsIds()), 1)
}
diff --git a/commands/rm.go b/commands/rm.go
index 718fb4a3..800f16e1 100644
--- a/commands/rm.go
+++ b/commands/rm.go
@@ -1,6 +1,8 @@
package commands
import (
+ "errors"
+
"github.com/spf13/cobra"
)
@@ -25,7 +27,15 @@ func newRmCommand() *cobra.Command {
}
func runRm(env *Env, args []string) (err error) {
- err = env.backend.RemoveBug(args)
+ switch len(args) {
+ case 1:
+ err = env.backend.RemoveBug(args[0], "")
+ break
+ case 2:
+ err = env.backend.RemoveBug(args[0], args[1])
+ default:
+ return errors.New("invalid number of arguments for rm command")
+ }
if err != nil {
return