diff --git a/cmd/zookeeper.go b/cmd/zookeeper.go index 7c7ed73..3743a8e 100644 --- a/cmd/zookeeper.go +++ b/cmd/zookeeper.go @@ -1,8 +1,12 @@ package cmd import ( - "fmt" + "strconv" + "github.com/abronan/valkeyrie/store" + "github.com/abronan/valkeyrie/store/zookeeper" + "github.com/ldez/traefik-certs-dumper/dumper" + "github.com/ldez/traefik-certs-dumper/dumper/kv" "github.com/spf13/cobra" ) @@ -11,12 +15,38 @@ var zookeeperCmd = &cobra.Command{ Use: "zookeeper", Short: "TODO", Long: `TODO`, - RunE: func(cmd *cobra.Command, args []string) error { - fmt.Println("zookeeper called") - return nil - }, + RunE: zookeeperRun, } func init() { kvCmd.AddCommand(zookeeperCmd) } + +func zookeeperRun(cmd *cobra.Command, _ []string) error { + // FIXME shared with file and all KVs + dumpPath := cmd.Flag("dest").Value.String() + + crtInfo := dumper.FileInfo{ + Name: cmd.Flag("crt-name").Value.String(), + Ext: cmd.Flag("crt-ext").Value.String(), + } + + keyInfo := dumper.FileInfo{ + Name: cmd.Flag("key-name").Value.String(), + Ext: cmd.Flag("key-ext").Value.String(), + } + + subDir, _ := strconv.ParseBool(cmd.Flag("domain-subdir").Value.String()) + + // --- + + config, err := getBaseConfig(cmd) + if err != nil { + return err + } + + config.Backend = store.ZK + zookeeper.Register() + + return kv.Dump(config, dumpPath, crtInfo, keyInfo, subDir) +}