bridge_token.go

 1package commands
 2
 3import (
 4	"fmt"
 5	"time"
 6
 7	"github.com/spf13/cobra"
 8
 9	text "github.com/MichaelMure/go-term-text"
10
11	"github.com/MichaelMure/git-bug/bridge/core"
12	"github.com/MichaelMure/git-bug/util/colors"
13)
14
15func runTokenBridge(cmd *cobra.Command, args []string) error {
16	tokens, err := core.ListTokens(repo)
17	if err != nil {
18		return err
19	}
20
21	for _, token := range tokens {
22		token, err := core.LoadToken(repo, token)
23		if err != nil {
24			return err
25		}
26		printToken(token)
27	}
28
29	return nil
30}
31
32func printToken(token *core.Token) {
33	valueFmt := text.LeftPadMaxLine(token.Value, 15, 0)
34	targetFmt := text.LeftPadMaxLine(token.Target, 7, 0)
35	createTimeFmt := text.LeftPadMaxLine(token.CreateTime.Format(time.RFC822), 20, 0)
36
37	fmt.Printf("%s %s %s %s\n",
38		token.ID().Human(),
39		colors.Magenta(targetFmt),
40		valueFmt,
41		createTimeFmt,
42	)
43}
44
45var bridgeTokenCmd = &cobra.Command{
46	Use:     "token",
47	Short:   "List all known tokens.",
48	PreRunE: loadRepo,
49	RunE:    runTokenBridge,
50	Args:    cobra.NoArgs,
51}
52
53func init() {
54	bridgeCmd.AddCommand(bridgeTokenCmd)
55	bridgeTokenCmd.Flags().SortFlags = false
56}