diff options
author | Michael Muré <batolettre@gmail.com> | 2019-02-24 14:45:24 +0100 |
---|---|---|
committer | Michael Muré <batolettre@gmail.com> | 2019-03-01 22:48:51 +0100 |
commit | 304a3349300bba909b1f69e54c0d2d8a338994d1 (patch) | |
tree | 4b48eb550a9a71389bfaefc5b11c5ba5c5b6398a /commands | |
parent | 7a80d8f849861a6033cd0765e5d85a52b08a8854 (diff) | |
download | git-bug-304a3349300bba909b1f69e54c0d2d8a338994d1.tar.gz |
commands: add a "user adopt" command to use an existing identity
Diffstat (limited to 'commands')
-rw-r--r-- | commands/user_adopt.go | 48 | ||||
-rw-r--r-- | commands/user_create.go | 4 |
2 files changed, 52 insertions, 0 deletions
diff --git a/commands/user_adopt.go b/commands/user_adopt.go new file mode 100644 index 00000000..5313e366 --- /dev/null +++ b/commands/user_adopt.go @@ -0,0 +1,48 @@ +package commands + +import ( + "fmt" + "os" + + "github.com/MichaelMure/git-bug/cache" + "github.com/MichaelMure/git-bug/util/interrupt" + "github.com/spf13/cobra" +) + +func runUserAdopt(cmd *cobra.Command, args []string) error { + backend, err := cache.NewRepoCache(repo) + if err != nil { + return err + } + defer backend.Close() + interrupt.RegisterCleaner(backend.Close) + + prefix := args[0] + + i, err := backend.ResolveIdentityPrefix(prefix) + if err != nil { + return err + } + + err = backend.SetUserIdentity(i) + if err != nil { + return err + } + + _, _ = fmt.Fprintf(os.Stderr, "Your identity is now: %s\n", i.DisplayName()) + + return nil +} + +var userAdoptCmd = &cobra.Command{ + Use: "adopt <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 +} diff --git a/commands/user_create.go b/commands/user_create.go index 2d007600..00ec5b9b 100644 --- a/commands/user_create.go +++ b/commands/user_create.go @@ -18,6 +18,10 @@ func runUserCreate(cmd *cobra.Command, args []string) error { defer backend.Close() interrupt.RegisterCleaner(backend.Close) + _, _ = fmt.Fprintf(os.Stderr, "Before creating a new identity, please be aware that "+ + "you can also use an already existing one using \"git bug user adopt\". As an example, "+ + "you can do that if your identity has already been created by an importer.\n\n") + preName, err := backend.GetUserName() if err != nil { return err |