1package commands
2
3import (
4 "fmt"
5
6 "github.com/spf13/cobra"
7
8 "github.com/MichaelMure/git-bug/bridge/core"
9 "github.com/MichaelMure/git-bug/cache"
10 "github.com/MichaelMure/git-bug/util/interrupt"
11)
12
13var (
14 bridgeTokenAll bool
15 bridgeTokenLocalOnly bool
16 bridgeTokenGlobalOnly bool
17)
18
19func runTokenBridge(cmd *cobra.Command, args []string) error {
20 backend, err := cache.NewRepoCache(repo)
21 if err != nil {
22 return err
23 }
24 defer backend.Close()
25 interrupt.RegisterCleaner(backend.Close)
26
27 var tokens []string
28 if bridgeTokenLocalOnly || bridgeTokenAll {
29 localTokens, err := core.ListTokens(backend)
30 if err != nil {
31 return err
32 }
33 tokens = localTokens
34 }
35
36 if bridgeTokenGlobalOnly || bridgeTokenAll {
37 globalTokens, err := core.ListGlobalTokens(backend)
38 if err != nil {
39 return err
40 }
41 tokens = append(tokens, globalTokens...)
42 }
43
44 for _, c := range tokens {
45 fmt.Println(c)
46 }
47 return nil
48}
49
50var bridgeTokenCmd = &cobra.Command{
51 Use: "token",
52 Short: "Configure and use bridge tokens.",
53 PreRunE: loadRepo,
54 RunE: runTokenBridge,
55 Args: cobra.NoArgs,
56}
57
58func init() {
59 bridgeCmd.AddCommand(bridgeTokenCmd)
60 bridgeTokenCmd.Flags().BoolVarP(&bridgeTokenAll, "all", "a", false, "")
61 bridgeTokenCmd.Flags().BoolVarP(&bridgeTokenLocalOnly, "local", "l", true, "")
62 bridgeTokenCmd.Flags().BoolVarP(&bridgeTokenGlobalOnly, "global", "g", false, "")
63 bridgeTokenCmd.Flags().SortFlags = false
64}