aboutsummaryrefslogtreecommitdiffstats
path: root/commands/bridge_token.go
diff options
context:
space:
mode:
Diffstat (limited to 'commands/bridge_token.go')
-rw-r--r--commands/bridge_token.go64
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
+}