From 4db6310bf8747778cde015c3067ec3007e127397 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Sun, 12 Dec 2021 00:18:07 +0100 Subject: [PATCH] chore: upgrade to go1.17 and linter --- .github/workflows/go-cross.yml | 2 +- .github/workflows/main.yml | 4 +- .golangci.yml | 3 + dumper/v1/dumper.go | 14 +-- dumper/v1/filename.go | 1 + dumper/v2/dumper.go | 14 +-- dumper/v2/filename.go | 1 + go.mod | 151 ++++++++++++++++++++++++++++++++- 8 files changed, 172 insertions(+), 18 deletions(-) diff --git a/.github/workflows/go-cross.yml b/.github/workflows/go-cross.yml index a0f4a76..8e53072 100644 --- a/.github/workflows/go-cross.yml +++ b/.github/workflows/go-cross.yml @@ -11,7 +11,7 @@ jobs: strategy: matrix: - go-version: [ 1.16, 1.x ] + go-version: [ 1.17, 1.x ] os: [ubuntu-latest, macos-latest, windows-latest] steps: diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6db44b8..6db0364 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -14,8 +14,8 @@ jobs: name: Main Process runs-on: ubuntu-latest env: - GO_VERSION: 1.16 - GOLANGCI_LINT_VERSION: v1.41.1 + GO_VERSION: 1.17 + GOLANGCI_LINT_VERSION: v1.43.0 SEIHON_VERSION: v0.8.3 CGO_ENABLED: 0 diff --git a/.golangci.yml b/.golangci.yml index cf0128c..a0776b3 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -49,6 +49,7 @@ linters-settings: - github.com/gorilla/mux - github.com/mailgun/minheap - github.com/mailgun/multibuf + - github.com/jaguilar/vt100 linters: enable-all: true @@ -76,6 +77,8 @@ linters: - exhaustive - exhaustivestruct - ifshort + - varnamelen + - nilnil issues: exclude-use-default: false diff --git a/dumper/v1/dumper.go b/dumper/v1/dumper.go index 084bb0f..cb2c78f 100644 --- a/dumper/v1/dumper.go +++ b/dumper/v1/dumper.go @@ -25,12 +25,12 @@ func Dump(data *StoredData, baseConfig *dumper.BaseConfig) error { } if !baseConfig.DomainSubDir { - if err := os.MkdirAll(filepath.Join(baseConfig.DumpPath, certsSubDir), 0755); err != nil { + if err := os.MkdirAll(filepath.Join(baseConfig.DumpPath, certsSubDir), 0o755); err != nil { return fmt.Errorf("certs folder creation failure: %w", err) } } - if err := os.MkdirAll(filepath.Join(baseConfig.DumpPath, keysSubDir), 0755); err != nil { + if err := os.MkdirAll(filepath.Join(baseConfig.DumpPath, keysSubDir), 0o755); err != nil { return fmt.Errorf("keys folder creation failure: %w", err) } @@ -51,31 +51,31 @@ func Dump(data *StoredData, baseConfig *dumper.BaseConfig) error { } privateKeyPem := extractPEMPrivateKey(data.Account) - return os.WriteFile(filepath.Join(baseConfig.DumpPath, keysSubDir, "letsencrypt"+baseConfig.KeyInfo.Ext), privateKeyPem, 0600) + return os.WriteFile(filepath.Join(baseConfig.DumpPath, keysSubDir, "letsencrypt"+baseConfig.KeyInfo.Ext), privateKeyPem, 0o600) } func writeCert(dumpPath string, cert *Certificate, info dumper.FileInfo, domainSubDir bool) error { certPath := filepath.Join(dumpPath, certsSubDir, safeName(cert.Domain.Main+info.Ext)) if domainSubDir { certPath = filepath.Join(dumpPath, safeName(cert.Domain.Main), info.Name+info.Ext) - if err := os.MkdirAll(filepath.Join(dumpPath, safeName(cert.Domain.Main)), 0755); err != nil { + if err := os.MkdirAll(filepath.Join(dumpPath, safeName(cert.Domain.Main)), 0o755); err != nil { return err } } - return os.WriteFile(certPath, cert.Certificate, 0666) + return os.WriteFile(certPath, cert.Certificate, 0o666) } func writeKey(dumpPath string, cert *Certificate, info dumper.FileInfo, domainSubDir bool) error { keyPath := filepath.Join(dumpPath, keysSubDir, safeName(cert.Domain.Main+info.Ext)) if domainSubDir { keyPath = filepath.Join(dumpPath, safeName(cert.Domain.Main), info.Name+info.Ext) - if err := os.MkdirAll(filepath.Join(dumpPath, safeName(cert.Domain.Main)), 0755); err != nil { + if err := os.MkdirAll(filepath.Join(dumpPath, safeName(cert.Domain.Main)), 0o755); err != nil { return err } } - return os.WriteFile(keyPath, cert.Key, 0600) + return os.WriteFile(keyPath, cert.Key, 0o600) } func extractPEMPrivateKey(account *Account) []byte { diff --git a/dumper/v1/filename.go b/dumper/v1/filename.go index 506043e..1e03fbf 100644 --- a/dumper/v1/filename.go +++ b/dumper/v1/filename.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows package v1 diff --git a/dumper/v2/dumper.go b/dumper/v2/dumper.go index cbc328a..dcdabb6 100644 --- a/dumper/v2/dumper.go +++ b/dumper/v2/dumper.go @@ -26,12 +26,12 @@ func Dump(data map[string]*acme.StoredData, baseConfig *dumper.BaseConfig) error } if !baseConfig.DomainSubDir { - if err := os.MkdirAll(filepath.Join(baseConfig.DumpPath, certsSubDir), 0755); err != nil { + if err := os.MkdirAll(filepath.Join(baseConfig.DumpPath, certsSubDir), 0o755); err != nil { return fmt.Errorf("certs folder creation failure: %w", err) } } - if err := os.MkdirAll(filepath.Join(baseConfig.DumpPath, keysSubDir), 0755); err != nil { + if err := os.MkdirAll(filepath.Join(baseConfig.DumpPath, keysSubDir), 0o755); err != nil { return fmt.Errorf("keys folder creation failure: %w", err) } @@ -54,7 +54,7 @@ func Dump(data map[string]*acme.StoredData, baseConfig *dumper.BaseConfig) error privateKeyPem := extractPEMPrivateKey(store.Account) - err := os.WriteFile(filepath.Join(baseConfig.DumpPath, keysSubDir, "letsencrypt"+baseConfig.KeyInfo.Ext), privateKeyPem, 0600) + err := os.WriteFile(filepath.Join(baseConfig.DumpPath, keysSubDir, "letsencrypt"+baseConfig.KeyInfo.Ext), privateKeyPem, 0o600) if err != nil { return fmt.Errorf("failed to write private key: %w", err) } @@ -67,24 +67,24 @@ func writeCert(dumpPath string, cert acme.Certificate, info dumper.FileInfo, dom certPath := filepath.Join(dumpPath, certsSubDir, safeName(cert.Domain.Main+info.Ext)) if domainSubDir { certPath = filepath.Join(dumpPath, safeName(cert.Domain.Main), info.Name+info.Ext) - if err := os.MkdirAll(filepath.Join(dumpPath, safeName(cert.Domain.Main)), 0755); err != nil { + if err := os.MkdirAll(filepath.Join(dumpPath, safeName(cert.Domain.Main)), 0o755); err != nil { return err } } - return os.WriteFile(certPath, cert.Certificate, 0666) + return os.WriteFile(certPath, cert.Certificate, 0o666) } func writeKey(dumpPath string, cert acme.Certificate, info dumper.FileInfo, domainSubDir bool) error { keyPath := filepath.Join(dumpPath, keysSubDir, safeName(cert.Domain.Main+info.Ext)) if domainSubDir { keyPath = filepath.Join(dumpPath, safeName(cert.Domain.Main), info.Name+info.Ext) - if err := os.MkdirAll(filepath.Join(dumpPath, safeName(cert.Domain.Main)), 0755); err != nil { + if err := os.MkdirAll(filepath.Join(dumpPath, safeName(cert.Domain.Main)), 0o755); err != nil { return err } } - return os.WriteFile(keyPath, cert.Key, 0600) + return os.WriteFile(keyPath, cert.Key, 0o600) } func extractPEMPrivateKey(account *acme.Account) []byte { diff --git a/dumper/v2/filename.go b/dumper/v2/filename.go index 1636d72..6f70e29 100644 --- a/dumper/v2/filename.go +++ b/dumper/v2/filename.go @@ -1,3 +1,4 @@ +//go:build !windows // +build !windows package v2 diff --git a/go.mod b/go.mod index 7c484fa..0899fe0 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/ldez/traefik-certs-dumper/v2 -go 1.16 +go 1.17 require ( github.com/abronan/valkeyrie v0.2.0 @@ -13,6 +13,155 @@ require ( github.com/traefik/traefik/v2 v2.5.5 ) +require ( + cloud.google.com/go v0.93.3 // indirect + github.com/Azure/azure-sdk-for-go v40.3.0+incompatible // indirect + github.com/Azure/go-autorest v14.2.0+incompatible // indirect + github.com/Azure/go-autorest/autorest v0.11.19 // indirect + github.com/Azure/go-autorest/autorest/adal v0.9.13 // indirect + github.com/Azure/go-autorest/autorest/azure/auth v0.5.8 // indirect + github.com/Azure/go-autorest/autorest/azure/cli v0.4.2 // indirect + github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect + github.com/Azure/go-autorest/autorest/to v0.4.0 // indirect + github.com/Azure/go-autorest/autorest/validation v0.3.1 // indirect + github.com/Azure/go-autorest/logger v0.2.1 // indirect + github.com/Azure/go-autorest/tracing v0.6.0 // indirect + github.com/OpenDNS/vegadns2client v0.0.0-20180418235048-a3fa4a771d87 // indirect + github.com/akamai/AkamaiOPEN-edgegrid-golang v1.1.1 // indirect + github.com/aliyun/alibaba-cloud-sdk-go v1.61.1183 // indirect + github.com/armon/go-metrics v0.3.8 // indirect + github.com/aws/aws-sdk-go v1.39.0 // indirect + github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc // indirect + github.com/cenkalti/backoff/v4 v4.1.1 // indirect + github.com/cloudflare/cloudflare-go v0.20.0 // indirect + github.com/containous/alice v0.0.0-20181107144136-d83ebdd94cbd // indirect + github.com/coreos/go-semver v0.3.0 // indirect + github.com/coreos/go-systemd/v22 v22.3.2 // indirect + github.com/cpu/goacmedns v0.1.1 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/deepmap/oapi-codegen v1.6.1 // indirect + github.com/dimchansky/utfbom v1.1.1 // indirect + github.com/dnsimple/dnsimple-go v0.70.1 // indirect + github.com/exoscale/egoscale v0.67.0 // indirect + github.com/fatih/color v1.9.0 // indirect + github.com/fatih/structs v1.1.0 // indirect + github.com/form3tech-oss/jwt-go v3.2.2+incompatible // indirect + github.com/go-errors/errors v1.0.1 // indirect + github.com/go-logr/logr v0.4.0 // indirect + github.com/go-resty/resty/v2 v2.1.1-0.20191201195748-d7b97669fe48 // indirect + github.com/gofrs/uuid v3.3.0+incompatible // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e // indirect + github.com/golang/protobuf v1.5.2 // indirect + github.com/google/go-github/v28 v28.1.1 // indirect + github.com/google/go-querystring v1.1.0 // indirect + github.com/google/uuid v1.2.0 // indirect + github.com/googleapis/gax-go/v2 v2.1.0 // indirect + github.com/gophercloud/gophercloud v0.16.0 // indirect + github.com/gophercloud/utils v0.0.0-20210216074907-f6de111f2eae // indirect + github.com/gorilla/context v1.1.1 // indirect + github.com/gorilla/mux v1.8.0 // indirect + github.com/gravitational/trace v0.0.0-20190726142706-a535a178675f // indirect + github.com/hashicorp/consul/api v1.10.1 // indirect + github.com/hashicorp/go-cleanhttp v0.5.1 // indirect + github.com/hashicorp/go-hclog v0.16.1 // indirect + github.com/hashicorp/go-immutable-radix v1.3.0 // indirect + github.com/hashicorp/go-retryablehttp v0.7.0 // indirect + github.com/hashicorp/go-rootcerts v1.0.2 // indirect + github.com/hashicorp/go-version v1.3.0 // indirect + github.com/hashicorp/golang-lru v0.5.4 // indirect + github.com/hashicorp/hcl v1.0.0 // indirect + github.com/hashicorp/serf v0.9.5 // indirect + github.com/iij/doapi v0.0.0-20190504054126-0bbf12d6d7df // indirect + github.com/inconshreveable/mousetrap v1.0.0 // indirect + github.com/infobloxopen/infoblox-go-client v1.1.1 // indirect + github.com/jarcoal/httpmock v1.0.6 // indirect + github.com/jmespath/go-jmespath v0.4.0 // indirect + github.com/jonboulle/clockwork v0.1.0 // indirect + github.com/json-iterator/go v1.1.11 // indirect + github.com/k0kubun/go-ansi v0.0.0-20180517002512-3bf9e2903213 // indirect + github.com/kolo/xmlrpc v0.0.0-20200310150728-e0350524596b // indirect + github.com/labbsr0x/bindman-dns-webhook v1.0.2 // indirect + github.com/labbsr0x/goh v1.0.1 // indirect + github.com/linode/linodego v0.31.1 // indirect + github.com/liquidweb/go-lwApi v0.0.5 // indirect + github.com/liquidweb/liquidweb-cli v0.6.9 // indirect + github.com/liquidweb/liquidweb-go v1.6.3 // indirect + github.com/magiconair/properties v1.8.5 // indirect + github.com/mattn/go-colorable v0.1.8 // indirect + github.com/mattn/go-isatty v0.0.12 // indirect + github.com/miekg/dns v1.1.43 // indirect + github.com/mitchellh/mapstructure v1.4.2 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.1 // indirect + github.com/namedotcom/go v0.0.0-20180403034216-08470befbe04 // indirect + github.com/nrdcg/auroradns v1.0.1 // indirect + github.com/nrdcg/desec v0.6.0 // indirect + github.com/nrdcg/dnspod-go v0.4.0 // indirect + github.com/nrdcg/freemyip v0.2.0 // indirect + github.com/nrdcg/goinwx v0.8.1 // indirect + github.com/nrdcg/namesilo v0.2.1 // indirect + github.com/nrdcg/porkbun v0.1.1 // indirect + github.com/oracle/oci-go-sdk v24.3.0+incompatible // indirect + github.com/ovh/go-ovh v1.1.0 // indirect + github.com/patrickmn/go-cache v2.1.0+incompatible // indirect + github.com/pelletier/go-toml v1.9.4 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pquerna/otp v1.3.0 // indirect + github.com/russross/blackfriday/v2 v2.1.0 // indirect + github.com/sacloud/libsacloud v1.36.2 // indirect + github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da // indirect + github.com/scaleway/scaleway-sdk-go v1.0.0-beta.7.0.20210127161313-bd30bebeac4f // indirect + github.com/sirupsen/logrus v1.8.1 // indirect + github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9 // indirect + github.com/softlayer/softlayer-go v1.0.3 // indirect + github.com/softlayer/xmlrpc v0.0.0-20200409220501-5f089df7cb7e // indirect + github.com/spf13/afero v1.6.0 // indirect + github.com/spf13/cast v1.4.1 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/stretchr/objx v0.3.0 // indirect + github.com/subosito/gotenv v1.2.0 // indirect + github.com/traefik/paerser v0.1.4 // indirect + github.com/transip/gotransip/v6 v6.6.1 // indirect + github.com/unrolled/render v1.0.2 // indirect + github.com/vinyldns/go-vinyldns v0.0.0-20200917153823-148a5f6b8f14 // indirect + github.com/vulcand/predicate v1.1.0 // indirect + github.com/vultr/govultr/v2 v2.7.1 // indirect + go.etcd.io/bbolt v1.3.5 // indirect + go.etcd.io/etcd/api/v3 v3.5.0 // indirect + go.etcd.io/etcd/client/pkg/v3 v3.5.0 // indirect + go.etcd.io/etcd/client/v2 v2.305.0 // indirect + go.etcd.io/etcd/client/v3 v3.5.0 // indirect + go.opencensus.io v0.23.0 // indirect + go.uber.org/atomic v1.7.0 // indirect + go.uber.org/multierr v1.6.0 // indirect + go.uber.org/ratelimit v0.0.0-20180316092928-c15da0234277 // indirect + go.uber.org/zap v1.17.0 // indirect + golang.org/x/crypto v0.0.0-20210817164053-32db794688a5 // indirect + golang.org/x/net v0.0.0-20210614182718-04defd469f4e // indirect + golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f // indirect + golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf // indirect + golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d // indirect + golang.org/x/text v0.3.6 // indirect + golang.org/x/time v0.0.0-20210611083556-38a9dc6acbc6 // indirect + google.golang.org/api v0.56.0 // indirect + google.golang.org/appengine v1.6.7 // indirect + google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71 // indirect + google.golang.org/grpc v1.40.0 // indirect + google.golang.org/protobuf v1.27.1 // indirect + gopkg.in/ini.v1 v1.63.2 // indirect + gopkg.in/ns1/ns1-go.v2 v2.6.2 // indirect + gopkg.in/square/go-jose.v2 v2.6.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect + k8s.io/apimachinery v0.21.0 // indirect + k8s.io/klog/v2 v2.8.0 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.1.0 // indirect +) + // Containous forks replace ( github.com/abbot/go-http-auth => github.com/containous/go-http-auth v0.4.1-0.20200324110947-a37a7636d23e