1package commands
2
3import (
4 "github.com/spf13/cobra"
5
6 "github.com/MichaelMure/git-bug/bridge"
7 "github.com/MichaelMure/git-bug/cache"
8 "github.com/MichaelMure/git-bug/util/interrupt"
9)
10
11func newBridgeCommand() *cobra.Command {
12 env := newEnv()
13
14 cmd := &cobra.Command{
15 Use: "bridge",
16 Short: "Configure and use bridges to other bug trackers.",
17 PreRunE: loadRepo(env),
18 RunE: func(cmd *cobra.Command, args []string) error {
19 return runBridge(env)
20 },
21 Args: cobra.NoArgs,
22 }
23
24 cmd.AddCommand(newBridgeAuthCommand())
25 cmd.AddCommand(newBridgeConfigureCommand())
26 cmd.AddCommand(newBridgePullCommand())
27 cmd.AddCommand(newBridgePushCommand())
28 cmd.AddCommand(newBridgeRm())
29
30 return cmd
31}
32
33func runBridge(env *Env) error {
34 backend, err := cache.NewRepoCache(env.repo)
35 if err != nil {
36 return err
37 }
38 defer backend.Close()
39 interrupt.RegisterCleaner(backend.Close)
40
41 configured, err := bridge.ConfiguredBridges(backend)
42 if err != nil {
43 return err
44 }
45
46 for _, c := range configured {
47 env.out.Println(c)
48 }
49
50 return nil
51}