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}