id.go

 1package commands
 2
 3import (
 4	"errors"
 5	"fmt"
 6
 7	"github.com/MichaelMure/git-bug/identity"
 8	"github.com/spf13/cobra"
 9)
10
11func runId(cmd *cobra.Command, args []string) error {
12	if len(args) > 1 {
13		return errors.New("only one identity can be displayed at a time")
14	}
15
16	var id *identity.Identity
17	var err error
18
19	if len(args) == 1 {
20		id, err = identity.Read(repo, args[0])
21	} else {
22		id, err = identity.GetUserIdentity(repo)
23	}
24
25	if err != nil {
26		return err
27	}
28
29	fmt.Printf("Id: %s\n", id.Id())
30	fmt.Printf("Identity: %s\n", id.DisplayName())
31	fmt.Printf("Name: %s\n", id.Name())
32	fmt.Printf("Login: %s\n", id.Login())
33	fmt.Printf("Email: %s\n", id.Email())
34	fmt.Printf("Protected: %v\n", id.IsProtected())
35
36	return nil
37}
38
39var idCmd = &cobra.Command{
40	Use:     "id [<id>]",
41	Short:   "Display or change the user identity",
42	PreRunE: loadRepo,
43	RunE:    runId,
44}
45
46func init() {
47	RootCmd.AddCommand(idCmd)
48	selectCmd.Flags().SortFlags = false
49}