diff options
Diffstat (limited to 'commands/bridge_token.go')
-rw-r--r-- | commands/bridge_token.go | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/commands/bridge_token.go b/commands/bridge_token.go new file mode 100644 index 00000000..6cb6c4b7 --- /dev/null +++ b/commands/bridge_token.go @@ -0,0 +1,64 @@ +package commands + +import ( + "fmt" + + "github.com/spf13/cobra" + + "github.com/MichaelMure/git-bug/bridge/core" + "github.com/MichaelMure/git-bug/cache" + "github.com/MichaelMure/git-bug/util/interrupt" +) + +var ( + bridgeTokenAll bool + bridgeTokenLocalOnly bool + bridgeTokenGlobalOnly bool +) + +func runTokenBridge(cmd *cobra.Command, args []string) error { + backend, err := cache.NewRepoCache(repo) + if err != nil { + return err + } + defer backend.Close() + interrupt.RegisterCleaner(backend.Close) + + var tokens []string + if bridgeTokenLocalOnly || bridgeTokenAll { + localTokens, err := core.ListTokens(backend) + if err != nil { + return err + } + tokens = localTokens + } + + if bridgeTokenGlobalOnly || bridgeTokenAll { + globalTokens, err := core.ListGlobalTokens(backend) + if err != nil { + return err + } + tokens = append(tokens, globalTokens...) + } + + for _, c := range tokens { + fmt.Println(c) + } + return nil +} + +var bridgeTokenCmd = &cobra.Command{ + Use: "token", + Short: "Configure and use bridge tokens.", + PreRunE: loadRepo, + RunE: runTokenBridge, + Args: cobra.NoArgs, +} + +func init() { + bridgeCmd.AddCommand(bridgeTokenCmd) + bridgeTokenCmd.Flags().BoolVarP(&bridgeTokenAll, "all", "a", false, "") + bridgeTokenCmd.Flags().BoolVarP(&bridgeTokenLocalOnly, "local", "l", true, "") + bridgeTokenCmd.Flags().BoolVarP(&bridgeTokenGlobalOnly, "global", "g", false, "") + bridgeTokenCmd.Flags().SortFlags = false +} |