1package commands
2
3import (
4 "github.com/spf13/cobra"
5
6 "github.com/MichaelMure/git-bug/commands/execenv"
7)
8
9func newWipeCommand(env *execenv.Env) *cobra.Command {
10 cmd := &cobra.Command{
11 Use: "wipe",
12 Short: "Wipe git-bug from the git repository",
13 PreRunE: execenv.LoadBackend(env),
14 RunE: func(cmd *cobra.Command, args []string) error {
15 return runWipe(env)
16 },
17 }
18
19 return cmd
20}
21
22func runWipe(env *execenv.Env) error {
23 env.Out.Println("cleaning entities...")
24 err := env.Backend.RemoveAll()
25 if err != nil {
26 _ = env.Backend.Close()
27 return err
28 }
29
30 env.Out.Println("cleaning git config ...")
31 err = env.Backend.ClearUserIdentity()
32 if err != nil {
33 _ = env.Backend.Close()
34 return err
35 }
36 err = env.Backend.LocalConfig().RemoveAll("git-bug")
37 if err != nil {
38 _ = env.Backend.Close()
39 return err
40 }
41
42 storage := env.Backend.LocalStorage()
43
44 err = env.Backend.Close()
45 if err != nil {
46 return err
47 }
48
49 env.Out.Println("cleaning caches ...")
50 err = storage.RemoveAll(".")
51 if err != nil {
52 return err
53 }
54
55 return nil
56}