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}