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