diff options
Diffstat (limited to 'commands/user_adopt.go')
-rw-r--r-- | commands/user_adopt.go | 47 |
1 files changed, 19 insertions, 28 deletions
diff --git a/commands/user_adopt.go b/commands/user_adopt.go index 7054f1f7..521f032f 100644 --- a/commands/user_adopt.go +++ b/commands/user_adopt.go @@ -1,49 +1,40 @@ package commands import ( - "fmt" - "os" - "github.com/spf13/cobra" - - "github.com/MichaelMure/git-bug/cache" - "github.com/MichaelMure/git-bug/util/interrupt" ) -func runUserAdopt(cmd *cobra.Command, args []string) error { - backend, err := cache.NewRepoCache(repo) - if err != nil { - return err +func newUserAdoptCommand() *cobra.Command { + env := newEnv() + + cmd := &cobra.Command{ + Use: "adopt <user-id>", + Short: "Adopt an existing identity as your own.", + Args: cobra.ExactArgs(1), + PreRunE: loadBackend(env), + PostRunE: closeBackend(env), + RunE: func(cmd *cobra.Command, args []string) error { + return runUserAdopt(env, args) + }, } - defer backend.Close() - interrupt.RegisterCleaner(backend.Close) + return cmd +} + +func runUserAdopt(env *Env, args []string) error { prefix := args[0] - i, err := backend.ResolveIdentityPrefix(prefix) + i, err := env.backend.ResolveIdentityPrefix(prefix) if err != nil { return err } - err = backend.SetUserIdentity(i) + err = env.backend.SetUserIdentity(i) if err != nil { return err } - _, _ = fmt.Fprintf(os.Stderr, "Your identity is now: %s\n", i.DisplayName()) + env.out.Printf("Your identity is now: %s\n", i.DisplayName()) return nil } - -var userAdoptCmd = &cobra.Command{ - Use: "adopt <user-id>", - Short: "Adopt an existing identity as your own.", - PreRunE: loadRepo, - RunE: runUserAdopt, - Args: cobra.ExactArgs(1), -} - -func init() { - userCmd.AddCommand(userAdoptCmd) - userAdoptCmd.Flags().SortFlags = false -} |