bridge_pull.go

 1package commands
 2
 3import (
 4	"time"
 5
 6	"github.com/MichaelMure/git-bug/bridge"
 7	"github.com/MichaelMure/git-bug/bridge/core"
 8	"github.com/MichaelMure/git-bug/cache"
 9	"github.com/MichaelMure/git-bug/util/interrupt"
10	"github.com/spf13/cobra"
11)
12
13func runBridgePull(cmd *cobra.Command, args []string) error {
14	backend, err := cache.NewRepoCache(repo)
15	if err != nil {
16		return err
17	}
18	defer backend.Close()
19	interrupt.RegisterCleaner(backend.Close)
20
21	var b *core.Bridge
22
23	if len(args) == 0 {
24		b, err = bridge.DefaultBridge(backend)
25	} else {
26		b, err = bridge.NewBridgeFromFullName(backend, args[0])
27	}
28
29	if err != nil {
30		return err
31	}
32
33	// TODO: by default import only new events
34	err = b.ImportAll(time.Time{})
35	if err != nil {
36		return err
37	}
38
39	return nil
40}
41
42var bridgePullCmd = &cobra.Command{
43	Use:     "pull [<name>]",
44	Short:   "Pull updates.",
45	PreRunE: loadRepo,
46	RunE:    runBridgePull,
47}
48
49func init() {
50	bridgeCmd.AddCommand(bridgePullCmd)
51}