bridge_push.go

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