bridge_token.go

 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}