diff --git a/cmd/kv.go b/cmd/kv.go index 1b23092..e299152 100644 --- a/cmd/kv.go +++ b/cmd/kv.go @@ -19,7 +19,7 @@ var kvCmd = &cobra.Command{ func init() { rootCmd.AddCommand(kvCmd) - kvCmd.PersistentFlags().StringSlice("endpoints", []string{"localhost:8500"}, "Comma separated list of endpoints.") + kvCmd.PersistentFlags().StringSlice("endpoints", []string{"localhost:8500"}, "List of endpoints.") kvCmd.PersistentFlags().Int("connection-timeout", 0, "Connection timeout in seconds.") kvCmd.PersistentFlags().String("prefix", "traefik", "Prefix used for KV store.") kvCmd.PersistentFlags().String("password", "", "Password for connection.") diff --git a/cmd/root.go b/cmd/root.go index 7b4ce73..8d6dfcf 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -2,6 +2,7 @@ package cmd import ( "fmt" + "log" "os" "strconv" @@ -40,7 +41,7 @@ var rootCmd = &cobra.Command{ // This is called by main.main(). It only needs to happen once to the rootCmd. func Execute() { if err := rootCmd.Execute(); err != nil { - fmt.Println(err) + log.Println(err) os.Exit(1) } } diff --git a/dumper/kv/kv.go b/dumper/kv/kv.go index dd31658..eed8431 100644 --- a/dumper/kv/kv.go +++ b/dumper/kv/kv.go @@ -18,7 +18,7 @@ const storeKeySuffix = "/acme/account/object" func Dump(config *Config, baseConfig *dumper.BaseConfig) error { kvStore, err := valkeyrie.NewStore(config.Backend, config.Endpoints, config.Options) if err != nil { - return err + return fmt.Errorf("unable to create client of the store: %v", err) } storeKey := config.Prefix + storeKeySuffix @@ -29,7 +29,7 @@ func Dump(config *Config, baseConfig *dumper.BaseConfig) error { pair, err := kvStore.Get(storeKey, nil) if err != nil { - return err + return fmt.Errorf("unable to retrieve %s value: %v", storeKey, err) } return dumpPair(pair, baseConfig) @@ -66,21 +66,19 @@ func dumpPair(pair *store.KVPair, baseConfig *dumper.BaseConfig) error { } func getStoredDataFromGzip(pair *store.KVPair) (*dumper.StoredData, error) { - data := &dumper.StoredData{} - reader, err := gzip.NewReader(bytes.NewBuffer(pair.Value)) if err != nil { - return data, err + return nil, fmt.Errorf("fail to create GZip reader: %v", err) } acmeData, err := ioutil.ReadAll(reader) if err != nil { - return data, err + return nil, fmt.Errorf("unable to read the pair content: %v", err) } account := &AccountV1{} if err := json.Unmarshal(acmeData, &account); err != nil { - return data, err + return nil, fmt.Errorf("unable marshal AccountV1: %v", err) } return convertAccountV1ToV2(account), nil diff --git a/go.sum b/go.sum index d3c2bbf..c0bb68f 100644 --- a/go.sum +++ b/go.sum @@ -26,10 +26,12 @@ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMo github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-acme/lego v2.5.0+incompatible h1:5fNN9yRQfv8ymH3DSsxla+4aYeQt2IgfZqHKVnK8f0s= github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M= +github.com/gogo/protobuf v1.2.0 h1:xU6/SpYbvkNYiptHJYEDRseDLvYE7wSqhYYNy0QSUzI= github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -147,8 +149,10 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8 h1:Nw54tB0rB7hY/N0NQvRW8DG4Yk3Q6T9cu9RcFQDu1tc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/grpc v1.18.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= +google.golang.org/grpc v1.19.0 h1:cfg4PD8YEdSFnm7qLV4++93WcmhH2nIUhMjhdCvl3j8= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/main.go b/main.go index 1daecea..af57620 100644 --- a/main.go +++ b/main.go @@ -1,7 +1,12 @@ package main -import "github.com/ldez/traefik-certs-dumper/cmd" +import ( + "log" + + "github.com/ldez/traefik-certs-dumper/cmd" +) func main() { + log.SetFlags(log.Lshortfile) cmd.Execute() }