1package commands
 2
 3import (
 4	"github.com/spf13/cobra"
 5)
 6
 7func newUserAdoptCommand() *cobra.Command {
 8	env := newEnv()
 9
10	cmd := &cobra.Command{
11		Use:      "adopt USER-ID",
12		Short:    "Adopt an existing identity as your own.",
13		Args:     cobra.ExactArgs(1),
14		PreRunE:  loadBackend(env),
15		PostRunE: closeBackend(env),
16		RunE: func(cmd *cobra.Command, args []string) error {
17			return runUserAdopt(env, args)
18		},
19	}
20
21	return cmd
22}
23
24func runUserAdopt(env *Env, args []string) error {
25	prefix := args[0]
26
27	i, err := env.backend.ResolveIdentityPrefix(prefix)
28	if err != nil {
29		return err
30	}
31
32	err = env.backend.SetUserIdentity(i)
33	if err != nil {
34		return err
35	}
36
37	env.out.Printf("Your identity is now: %s\n", i.DisplayName())
38
39	return nil
40}