Skip to content

Commit c828ccb

Browse files
committed
use cobra for fetching the arguments
1 parent ea37e3f commit c828ccb

File tree

3 files changed

+25
-20
lines changed

3 files changed

+25
-20
lines changed

cli/cmd/digger/main.go

+18-19
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"encoding/json"
66
"fmt"
77
"github.com/diggerhq/digger/cli/pkg/generic_ci"
8+
"github.com/spf13/cobra"
89
"github.com/spf13/pflag"
910
"github.com/spf13/viper"
1011
"log"
@@ -759,27 +760,10 @@ func bitbucketCI(lock core_locking.Lock, policyChecker core_policy.Checker, back
759760
reportErrorAndExit(actor, "Digger finished successfully", 0)
760761
}
761762

762-
func run(lock core_locking.Lock, policyChecker core_policy.Checker, reportingStrategy reporting.ReportStrategy, backendApi core_backend.Api) {
763-
type RunConfig struct {
764-
Event string `mapstructure:"event"`
765-
Actor string `mapstructure:"actor"`
766-
Command string `mapstructure:"command"`
767-
Projects string `mapstructure:"projects"`
768-
RepoNamespace string `mapstructure:"repo-namespace"`
769-
FilesChanged string `mapstructure:"files-changed"`
770-
}
763+
func run(v *viper.Viper, lock core_locking.Lock, policyChecker core_policy.Checker, reportingStrategy reporting.ReportStrategy, backendApi core_backend.Api) {
771764

772765
var runConfig RunConfig
773-
v := viper.New()
774-
v.SetEnvPrefix("DIGGER")
775-
v.SetEnvKeyReplacer(strings.NewReplacer("-", "_"))
776-
v.AutomaticEnv()
777-
v.BindPFlag("repo-namespace", &pflag.Flag{Name: "repo-namespace"})
778-
v.BindPFlag("command", &pflag.Flag{Name: "command"})
779-
v.BindPFlag("files-changed", &pflag.Flag{Name: "files-changed"})
780-
781766
if err := v.Unmarshal(&runConfig); err != nil {
782-
reportErrorAndExit("", fmt.Sprintf("Could not parse user args: %v", err), 1)
783767
}
784768

785769
//SCMOrganisation, SCMrepository := utils.ParseRepoNamespace(runConfig.RepoNamespace)
@@ -884,7 +868,22 @@ func main() {
884868
log.Println("Lock provider has been created successfully")
885869

886870
if len(args) > 0 && args[0] == "run" {
887-
run(lock, policyChecker, reportStrategy, backendApi)
871+
runCmd := cobra.Command{Use: "run"}
872+
rootCmd.AddCommand(&runCmd)
873+
_, v, err := initCobraCmdForRun(&runCmd)
874+
runCmd.Run = func(cmd *cobra.Command, args []string) {
875+
if err != nil {
876+
reportErrorAndExit("", fmt.Sprintf("Could initialize command line args: %v", err), 1)
877+
}
878+
run(v, lock, policyChecker, reportStrategy, backendApi)
879+
}
880+
runCmd.Flags().Visit(func(f *pflag.Flag) {
881+
println(f.Name, f.Value)
882+
})
883+
if err := runCmd.Execute(); err != nil {
884+
reportErrorAndExit("", fmt.Sprintf("Error occured during command exec: %v", err), 8)
885+
}
886+
888887
os.Exit(0)
889888
}
890889

cli/go.mod

+3-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ require (
2323
github.com/diggerhq/digger/libs v0.3.10
2424
github.com/dominikbraun/graph v0.23.0
2525
github.com/google/go-github/v55 v55.0.0
26+
github.com/spf13/cobra v1.8.0
27+
github.com/spf13/pflag v1.0.5
2628
github.com/spf13/viper v1.18.2
2729
)
2830

@@ -93,6 +95,7 @@ require (
9395
github.com/hashicorp/yamux v0.0.0-20211028200310-0bc27b27de87 // indirect
9496
github.com/howeyc/gopass v0.0.0-20210920133722-c8aef6fb66ef // indirect
9597
github.com/imdario/mergo v0.3.12 // indirect
98+
github.com/inconshreveable/mousetrap v1.1.0 // indirect
9699
github.com/jessevdk/go-flags v1.5.0 // indirect
97100
github.com/jstemmer/go-junit-report v1.0.0 // indirect
98101
github.com/klauspost/compress v1.17.0 // indirect
@@ -124,7 +127,6 @@ require (
124127
github.com/sourcegraph/jsonrpc2 v0.2.0 // indirect
125128
github.com/spf13/afero v1.11.0 // indirect
126129
github.com/spf13/cast v1.6.0 // indirect
127-
github.com/spf13/pflag v1.0.5 // indirect
128130
github.com/subosito/gotenv v1.6.0 // indirect
129131
github.com/terraform-linters/tflint v0.47.0 // indirect
130132
github.com/terraform-linters/tflint-plugin-sdk v0.17.0 // indirect

cli/go.sum

+4
Original file line numberDiff line numberDiff line change
@@ -766,6 +766,8 @@ github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:
766766
github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
767767
github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU=
768768
github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
769+
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
770+
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
769771
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
770772
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
771773
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
@@ -1017,6 +1019,8 @@ github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8=
10171019
github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY=
10181020
github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0=
10191021
github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
1022+
github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0=
1023+
github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho=
10201024
github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
10211025
github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
10221026
github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=

0 commit comments

Comments
 (0)