From 0424a0fa19cbd2d2110d748a0ff3c014615aa17e Mon Sep 17 00:00:00 2001 From: Amine Hilaly Date: Sat, 8 Jun 2019 23:14:35 +0200 Subject: [commands] bridge: add push sub command [commands] bridge: use cobra max args --- commands/bridge_pull.go | 4 +++- commands/bridge_push.go | 53 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 commands/bridge_push.go diff --git a/commands/bridge_pull.go b/commands/bridge_pull.go index c7a22d6d..2edabfaf 100644 --- a/commands/bridge_pull.go +++ b/commands/bridge_pull.go @@ -3,11 +3,12 @@ package commands import ( "time" + "github.com/spf13/cobra" + "github.com/MichaelMure/git-bug/bridge" "github.com/MichaelMure/git-bug/bridge/core" "github.com/MichaelMure/git-bug/cache" "github.com/MichaelMure/git-bug/util/interrupt" - "github.com/spf13/cobra" ) func runBridgePull(cmd *cobra.Command, args []string) error { @@ -44,6 +45,7 @@ var bridgePullCmd = &cobra.Command{ Short: "Pull updates.", PreRunE: loadRepo, RunE: runBridgePull, + Args: cobra.MaximumNArgs(1), } func init() { diff --git a/commands/bridge_push.go b/commands/bridge_push.go new file mode 100644 index 00000000..19b5fc4f --- /dev/null +++ b/commands/bridge_push.go @@ -0,0 +1,53 @@ +package commands + +import ( + "time" + + "github.com/spf13/cobra" + + "github.com/MichaelMure/git-bug/bridge" + "github.com/MichaelMure/git-bug/bridge/core" + "github.com/MichaelMure/git-bug/cache" + "github.com/MichaelMure/git-bug/util/interrupt" +) + +func runBridgePush(cmd *cobra.Command, args []string) error { + backend, err := cache.NewRepoCache(repo) + if err != nil { + return err + } + defer backend.Close() + interrupt.RegisterCleaner(backend.Close) + + var b *core.Bridge + + if len(args) == 0 { + b, err = bridge.DefaultBridge(backend) + } else { + b, err = bridge.NewBridgeFromFullName(backend, args[0]) + } + + if err != nil { + return err + } + + // TODO: by default export only new events + err = b.ExportAll(time.Time{}) + if err != nil { + return err + } + + return nil +} + +var bridgePushCmd = &cobra.Command{ + Use: "push []", + Short: "Push updates.", + PreRunE: loadRepo, + RunE: runBridgePush, + Args: cobra.MaximumNArgs(1), +} + +func init() { + bridgeCmd.AddCommand(bridgePushCmd) +} -- cgit