Skip to content

Commit

Permalink
build: add linting (#124)
Browse files Browse the repository at this point in the history
* build: add code-check build

Signed-off-by: Christian Kotzbauer <[email protected]>

* build: restructure tools

Signed-off-by: Christian Kotzbauer <[email protected]>

* build: add bootstrap call

Signed-off-by: Christian Kotzbauer <[email protected]>

* cleanup: fix lint errors

Signed-off-by: Christian Kotzbauer <[email protected]>

* build: increase golint timeout

Signed-off-by: Christian Kotzbauer <[email protected]>

* build: increase timeout as well

Signed-off-by: Christian Kotzbauer <[email protected]>
  • Loading branch information
ckotzbauer authored Jun 19, 2022
1 parent 6d614e9 commit fecc9ce
Show file tree
Hide file tree
Showing 13 changed files with 122 additions and 69 deletions.
41 changes: 41 additions & 0 deletions .github/workflows/code-checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: code-checks

on:
pull_request: {}
push:
branches:
- "**"

jobs:
gosec:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@v3
with:
go-version: '1.18.3'

- name: Checkout
uses: actions/checkout@v3

- name: Gosec Security Scanner
run: |
make bootstrap-tools
make lintsec
golint:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@v3
with:
go-version: '1.18.3'

- name: Checkout
uses: actions/checkout@v3

- name: Golint
uses: golangci/golangci-lint-action@v3
with:
version: v1.46.2
args: --timeout 5m
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
*.so
*.dylib
dist
.tmp

# Test binary, build with `go test -c`
*.test
Expand Down
19 changes: 17 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
REGISTRY_USER=""
REGISTRY_TOKEN=""
TEMPDIR = ./.tmp
LINTCMD = $(TEMPDIR)/golangci-lint run --timeout 5m
GOSECCMD = $(TEMPDIR)/gosec ./...

all: build

Expand All @@ -20,3 +21,17 @@ vet:

test:
go test $(shell go list ./... | grep -v sbom-operator/internal/target/oci) -coverprofile cover.out

lint:
$(LINTCMD)

lintsec:
$(GOSECCMD)

$(TEMPDIR):
mkdir -p $(TEMPDIR)

.PHONY: bootstrap-tools
bootstrap-tools: $(TEMPDIR)
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(TEMPDIR)/ v1.46.2
curl -sfL https://raw.githubusercontent.com/securego/gosec/master/install.sh | sh -s -- -b $(TEMPDIR)/ v2.12.0
16 changes: 1 addition & 15 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,6 @@ github.com/Microsoft/hcsshim v0.8.14/go.mod h1:NtVKoYxQuTLx6gEq0L96c9Ju4JbRJ4nY2
github.com/Microsoft/hcsshim v0.8.15/go.mod h1:x38A4YbHbdxJtc0sF6oIz+RG0npwSCAvn69iY6URG00=
github.com/Microsoft/hcsshim v0.8.16/go.mod h1:o5/SZqmR7x9JNKsW3pu+nqHm0MF8vbA+VxGOoXdC600=
github.com/Microsoft/hcsshim v0.8.21/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4=
github.com/Microsoft/hcsshim v0.8.23/go.mod h1:4zegtUJth7lAvFyc6cH2gGQ5B3OFQim01nnU2M8jKDg=
github.com/Microsoft/hcsshim v0.8.24/go.mod h1:4zegtUJth7lAvFyc6cH2gGQ5B3OFQim01nnU2M8jKDg=
github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da/go.mod h1:5hlzMzRKMLyo42nCZ9oml8AdTlq/0cvIaBv6tK1RehU=
github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3/go.mod h1:mw7qgWloBUl75W/gVH3cQszUg1+gUITj7D6NY7ywVnY=
Expand Down Expand Up @@ -135,12 +134,8 @@ github.com/anchore/go-testutils v0.0.0-20200925183923-d5f45b0d3c04 h1:VzprUTpc0v
github.com/anchore/go-testutils v0.0.0-20200925183923-d5f45b0d3c04/go.mod h1:6dK64g27Qi1qGQZ67gFmBFvEHScy0/C8qhQhNe5B5pQ=
github.com/anchore/packageurl-go v0.1.1-0.20220428202044-a072fa3cb6d7 h1:kDrYkTSM9uIxaX/P9s0F4nKYNM+hnSgLJdLpqvsaQ/g=
github.com/anchore/packageurl-go v0.1.1-0.20220428202044-a072fa3cb6d7/go.mod h1:Blo6OgJNiYF41ufcgHKkbCKF2MDOMlrqhXv/ij6ocR4=
github.com/anchore/stereoscope v0.0.0-20220518185348-c97a3c6ffc67 h1:nbcYgEEv9CLnuKg/8ExvXDiEpCA9pwZcyyraZyBE+aw=
github.com/anchore/stereoscope v0.0.0-20220518185348-c97a3c6ffc67/go.mod h1:yoCLUZY0k/pYLNIy0L80p2Ko0PKVNXm8rHtgxp4OiSc=
github.com/anchore/stereoscope v0.0.0-20220616165231-b0fd10fdee06 h1:TSRA7gtuia3eyleTO3t7iPU+9xHbdSaufoUFNQUwUXo=
github.com/anchore/stereoscope v0.0.0-20220616165231-b0fd10fdee06/go.mod h1:sai2ZjAtT/y1GRQBDRbynhdhnQcGWBvVcv8CN3hTWmI=
github.com/anchore/syft v0.47.0 h1:ER/c3hIqE/f23REZcoz88NJYyrpWjgmKojPwtlRBlVU=
github.com/anchore/syft v0.47.0/go.mod h1:7R9U/NZu+VCBFNolgp+g4UfSkxq4U0c1ruq8/7GHZTY=
github.com/anchore/syft v0.48.1 h1:tBJicJQVvaDTdgQB9hVgXLl+gb6C3RIQ8THp11C9Riw=
github.com/anchore/syft v0.48.1/go.mod h1:lQ90VDNtxYK09F+/6hs5b2FSpnT+1/eLy+Z8ap6jsSo=
github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
Expand Down Expand Up @@ -209,10 +204,6 @@ github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLI
github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs=
github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs=
github.com/cilium/ebpf v0.6.2/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs=
github.com/ckotzbauer/libk8soci v0.0.0-20220616071828-a85971a56e7e h1:lchNRzLhlooLdnwZReZSlyJhO8ffJ8K1JvEqRvJoHys=
github.com/ckotzbauer/libk8soci v0.0.0-20220616071828-a85971a56e7e/go.mod h1:MuZMhEXIeKexg2qhJVtYc3xNo15g63M9d1ArjKSCXU4=
github.com/ckotzbauer/libk8soci v0.0.0-20220617111310-769e57e01900 h1:rlOyuUUkByPJMQ4cWHKLIkNXfLP2K6jZKCn7nE1nymQ=
github.com/ckotzbauer/libk8soci v0.0.0-20220617111310-769e57e01900/go.mod h1:MuZMhEXIeKexg2qhJVtYc3xNo15g63M9d1ArjKSCXU4=
github.com/ckotzbauer/libk8soci v0.0.0-20220618141744-5d23eb2eeea7 h1:femLWHdpj7arNUzYxsIrhv4+fzaAqVSAnUxhz2bWZi4=
github.com/ckotzbauer/libk8soci v0.0.0-20220618141744-5d23eb2eeea7/go.mod h1:MuZMhEXIeKexg2qhJVtYc3xNo15g63M9d1ArjKSCXU4=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
Expand Down Expand Up @@ -261,7 +252,6 @@ github.com/containerd/containerd v1.5.0-beta.4/go.mod h1:GmdgZd2zA2GYIBZ0w09Zvgq
github.com/containerd/containerd v1.5.0-rc.0/go.mod h1:V/IXoMqNGgBlabz3tHD2TWDoTJseu1FGOKuoA4nNb2s=
github.com/containerd/containerd v1.5.1/go.mod h1:0DOxVqwDy2iZvrZp2JUx/E+hS0UNTVn7dJnIOwtYR4g=
github.com/containerd/containerd v1.5.7/go.mod h1:gyvv6+ugqY25TiXxcZC3L5yOeYgEw0QMhscqVp1AR9c=
github.com/containerd/containerd v1.5.10/go.mod h1:fvQqCfadDGga5HZyn3j4+dx56qj2I9YwBrlSdalvJYQ=
github.com/containerd/containerd v1.5.13/go.mod h1:3AlCrzKROjIuP3JALsY14n8YtntaUDBu7vek+rPN5Vc=
github.com/containerd/containerd v1.6.6 h1:xJNPhbrmz8xAMDNoVjHy9YHtWwEQNS+CDkcIRh7t8Y0=
github.com/containerd/containerd v1.6.6/go.mod h1:ZoP1geJldzCVY3Tonoz7b1IXk8rIX0Nltt5QE4OMNk0=
Expand Down Expand Up @@ -719,7 +709,7 @@ github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA=
github.com/jarcoal/httpmock v1.1.0 h1:F47ChZj1Y2zFsCXxNkBPwNNKnAyOATcdQibk0qEdVCE=
github.com/jarcoal/httpmock v1.2.0 h1:gSvTxxFR/MEMfsGrvRbdfpRUMBStovlSRLw0Ep1bwwc=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4=
Expand Down Expand Up @@ -919,8 +909,6 @@ github.com/nishanths/predeclared v0.0.0-20190419143655-18a43bb90ffc/go.mod h1:62
github.com/nishanths/predeclared v0.2.1/go.mod h1:HvkGJcA3naj4lOwnFXFDkFxVtSqQMB9sbB1usJ+xjQE=
github.com/novln/docker-parser v1.0.0 h1:PjEBd9QnKixcWczNGyEdfUrP6GR0YUilAqG7Wksg3uc=
github.com/novln/docker-parser v1.0.0/go.mod h1:oCeM32fsoUwkwByB5wVjsrsVQySzPWkl3JdlTn1txpE=
github.com/nscuro/dtrack-client v0.5.0 h1:pyBSYoN65SOVIjY0b7O7uBbRZp/tFt3bhRks2uSyOGo=
github.com/nscuro/dtrack-client v0.5.0/go.mod h1:TWRwZIZhFwCmaeUFLU+g7nkkvd9LToLlJpLQGJaeD9M=
github.com/nscuro/dtrack-client v0.6.0 h1:lOZv1dHvQHC8s3LvfBd/4kGo3HpVMER9US1WLNAIT14=
github.com/nscuro/dtrack-client v0.6.0/go.mod h1:wbtzmJwlXNEuY/yye3xViXoaKp5+fgzB07/TJI8rZCs=
github.com/nwaples/rardecode v1.1.0 h1:vSxaY8vQhOcVr4mm5e8XllHWTiM4JF507A0Katqw7MQ=
Expand Down Expand Up @@ -1918,14 +1906,12 @@ honnef.co/go/tools v0.2.1/go.mod h1:lPVVZ2BS5TfnjLyizF7o7hv7j9/L+8cZY2hLyjP9cGY=
k8s.io/api v0.20.1/go.mod h1:KqwcCVogGxQY3nBlRpwt+wpAMF/KjaCc7RpywacvqUo=
k8s.io/api v0.20.4/go.mod h1:++lNL1AJMkDymriNniQsWRkMDzRaX2Y/POTUi8yvqYQ=
k8s.io/api v0.20.6/go.mod h1:X9e8Qag6JV/bL5G6bU8sdVRltWKmdHsFUGS3eVndqE8=
k8s.io/api v0.24.1 h1:BjCMRDcyEYz03joa3K1+rbshwh1Ay6oB53+iUx2H8UY=
k8s.io/api v0.24.1/go.mod h1:JhoOvNiLXKTPQ60zh2g0ewpA+bnEYf5q44Flhquh4vQ=
k8s.io/api v0.24.2 h1:g518dPU/L7VRLxWfcadQn2OnsiGWVOadTLpdnqgY2OI=
k8s.io/api v0.24.2/go.mod h1:AHqbSkTm6YrQ0ObxjO3Pmp/ubFF/KuM7jU+3khoBsOg=
k8s.io/apimachinery v0.20.1/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU=
k8s.io/apimachinery v0.20.4/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU=
k8s.io/apimachinery v0.20.6/go.mod h1:ejZXtW1Ra6V1O5H8xPBGz+T3+4gfkTCeExAHKU57MAc=
k8s.io/apimachinery v0.24.1 h1:ShD4aDxTQKN5zNf8K1RQ2u98ELLdIW7jEnlO9uAMX/I=
k8s.io/apimachinery v0.24.1/go.mod h1:82Bi4sCzVBdpYjyI4jY6aHX+YCUchUIrZrXKedjd2UM=
k8s.io/apimachinery v0.24.2 h1:5QlH9SL2C8KMcrNJPor+LbXVTaZRReml7svPEh4OKDM=
k8s.io/apimachinery v0.24.2/go.mod h1:82Bi4sCzVBdpYjyI4jY6aHX+YCUchUIrZrXKedjd2UM=
Expand Down
20 changes: 11 additions & 9 deletions internal/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,15 @@ var (
ConfigKeyPodLabelSelector = "pod-label-selector"
ConfigKeyNamespaceLabelSelector = "namespace-label-selector"
ConfigKeyDependencyTrackBaseUrl = "dtrack-base-url"
ConfigKeyDependencyTrackApiKey = "dtrack-api-key"
ConfigKeyKubernetesClusterId = "kubernetes-cluster-id"
ConfigKeyJobImage = "job-image"
ConfigKeyJobImagePullSecret = "job-image-pull-secret"
ConfigKeyJobTimeout = "job-timeout"
ConfigKeyOciRegistry = "oci-registry"
ConfigKeyOciUser = "oci-user"
ConfigKeyOciToken = "oci-token"
ConfigKeyFallbackPullSecret = "fallback-pull-secret"
/* #nosec */
ConfigKeyDependencyTrackApiKey = "dtrack-api-key"
ConfigKeyKubernetesClusterId = "kubernetes-cluster-id"
ConfigKeyJobImage = "job-image"
/* #nosec */
ConfigKeyJobImagePullSecret = "job-image-pull-secret"
ConfigKeyJobTimeout = "job-timeout"
ConfigKeyOciRegistry = "oci-registry"
ConfigKeyOciUser = "oci-user"
ConfigKeyOciToken = "oci-token"
ConfigKeyFallbackPullSecret = "fallback-pull-secret"
)
6 changes: 5 additions & 1 deletion internal/daemon/daemon.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,11 @@ func Start(cronTime string) {
cs.printNextExecution()

c := cron.New()
c.AddFunc(cr, func() { cs.runBackgroundService() })
err := c.AddFunc(cr, func() { cs.runBackgroundService() })
if err != nil {
logrus.WithError(err).Fatal("Could not configure cron")
}

c.Start()
}

Expand Down
5 changes: 3 additions & 2 deletions internal/kubernetes/kubernetes.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,9 @@ type KubeClient struct {

var (
annotationTemplate = "ckotzbauer.sbom-operator.io/%s"
jobSecretName = "sbom-operator-job-config"
JobName = "sbom-operator-job"
/* #nosec */
jobSecretName = "sbom-operator-job-config"
JobName = "sbom-operator-job"
)

func NewClient(ignoreAnnotations bool) *KubeClient {
Expand Down
6 changes: 5 additions & 1 deletion internal/syft/syft.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,11 @@ func (s *Syft) ExecuteSyft(img oci.RegistryImage) (string, error) {
return "", err
}

os.Remove(imagePath)
err = os.Remove(imagePath)
if err != nil {
logrus.WithError(err).Warnf("Image %s could not be deleted", imagePath)
}

return string(b), nil
}

Expand Down
20 changes: 8 additions & 12 deletions internal/target/dtrack/dtrack_target.go
Original file line number Diff line number Diff line change
Expand Up @@ -111,16 +111,6 @@ func (g *DependencyTrackTarget) Cleanup(allImages []libk8s.KubeImage) {
pageSize = 50
)

allImageRefs := make([]parser.Reference, len(allImages))
for _, image := range allImages {
ref, err := parser.Parse(image.Image.Image)
if err != nil {
logrus.WithError(err).Errorf("Could not parse image %s", image.Image.Image)
continue
}
allImageRefs = append(allImageRefs, *ref)
}

for {
projectsPage, err := client.Project.GetAll(context.Background(), dtrack.PageOptions{
PageNumber: pageNumber,
Expand Down Expand Up @@ -150,7 +140,10 @@ func (g *DependencyTrackTarget) Cleanup(allImages []libk8s.KubeImage) {
if clusterId == g.k8sClusterId {
logrus.Infof("Removing %v=%v tag from project %v", kubernetesCluster, g.k8sClusterId, currentImageName)
project.Tags = removeTag(project.Tags, kubernetesCluster+"="+g.k8sClusterId)
client.Project.Update(context.Background(), project)
_, err := client.Project.Update(context.Background(), project)
if err != nil {
logrus.WithError(err).Warnf("Project %s could not be updated", project.UUID.String())
}
} else {
otherClusterIds = append(otherClusterIds, clusterId)
}
Expand All @@ -163,7 +156,10 @@ func (g *DependencyTrackTarget) Cleanup(allImages []libk8s.KubeImage) {
// if not in other cluster delete the project
if sbomOperatorPropFound && len(otherClusterIds) == 0 {
logrus.Infof("Image not running in any cluster - removing %v", currentImageName)
client.Project.Delete(context.Background(), project.UUID)
err := client.Project.Delete(context.Background(), project.UUID)
if err != nil {
logrus.WithError(err).Warnf("Project %s could not be deleted", project.UUID.String())
}
}
}

Expand Down
5 changes: 4 additions & 1 deletion internal/target/git/git_target.go
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,10 @@ func (g *GitTarget) Cleanup(allImages []libk8s.KubeImage) {
if err != nil {
logrus.WithError(err).Error("Could not cleanup old SBOMs")
} else {
g.gitAccount.CommitAndPush(g.workingTree, "Deleted old SBOMs")
err := g.gitAccount.CommitAndPush(g.workingTree, "Deleted old SBOMs")
if err != nil {
logrus.WithError(err).Error("Could not commit SBOM removal to git")
}
}
}

Expand Down
35 changes: 19 additions & 16 deletions internal/util.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package internal
import (
"fmt"
"io"
"math/rand"
"strings"

"github.com/sirupsen/logrus"
Expand All @@ -13,17 +12,32 @@ import (
)

// BindFlags binds each cobra flag to its associated viper configuration (environment variable)
func BindFlags(cmd *cobra.Command, args []string) {
func BindFlags(cmd *cobra.Command, args []string) error {
var e error
cmd.PersistentFlags().VisitAll(func(f *pflag.Flag) {
viper.BindEnv(f.Name, flagToEnvVar(f.Name))
viper.BindPFlag(f.Name, cmd.PersistentFlags().Lookup(f.Name))
err := viper.BindEnv(f.Name, flagToEnvVar(f.Name))
if err != nil && e == nil {
e = err
return
}

err = viper.BindPFlag(f.Name, cmd.PersistentFlags().Lookup(f.Name))
if err != nil && e == nil {
e = err
return
}

// Apply the viper config value to the flag when the flag is not set and viper has a value
if !f.Changed && viper.IsSet(f.Name) {
val := viper.Get(f.Name)
cmd.Flags().Set(f.Name, fmt.Sprintf("%v", val))
err := cmd.Flags().Set(f.Name, fmt.Sprintf("%v", val))
if err != nil && e == nil {
e = err
}
}
})

return e
}

// flagToEnvVar converts command flag name to equivalent environment variable name
Expand All @@ -49,14 +63,3 @@ func Unescape(s string) string {
s = strings.ReplaceAll(s, "\"", "")
return s
}

const letterBytes = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

// RandStringBytes generates a random string with the given length
func RandStringBytes(n int) string {
b := make([]byte, n)
for i := range b {
b[i] = letterBytes[rand.Intn(len(letterBytes))]
}
return string(b)
}
6 changes: 0 additions & 6 deletions internal/util_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,3 @@ func TestUnescape(t *testing.T) {
})
}
}

func TestRandStringBytes(t *testing.T) {
out := RandStringBytes(67)
assert.NotEmpty(t, out)
assert.Equal(t, 67, len(out))
}
11 changes: 7 additions & 4 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ var (
daemonCron string

rootCmd = &cobra.Command{
Use: "sbom-operator",
Short: "An operator for cataloguing all k8s-cluster-images to multiple targets.",
PersistentPreRun: internal.BindFlags,
Use: "sbom-operator",
Short: "An operator for cataloguing all k8s-cluster-images to multiple targets.",
PersistentPreRunE: internal.BindFlags,
Run: func(cmd *cobra.Command, args []string) {
internal.SetUpLogs(os.Stdout, verbosity)
printVersion()
Expand Down Expand Up @@ -88,5 +88,8 @@ func health(w http.ResponseWriter, req *http.Request) {
}

func main() {
rootCmd.Execute()
err := rootCmd.Execute()
if err != nil {
panic(err)
}
}

0 comments on commit fecc9ce

Please sign in to comment.