|
5 | 5 | "encoding/json"
|
6 | 6 | "fmt"
|
7 | 7 | "github.com/diggerhq/digger/cli/pkg/generic_ci"
|
| 8 | + "github.com/spf13/cobra" |
8 | 9 | "github.com/spf13/pflag"
|
9 | 10 | "github.com/spf13/viper"
|
10 | 11 | "log"
|
@@ -759,27 +760,10 @@ func bitbucketCI(lock core_locking.Lock, policyChecker core_policy.Checker, back
|
759 | 760 | reportErrorAndExit(actor, "Digger finished successfully", 0)
|
760 | 761 | }
|
761 | 762 |
|
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) { |
771 | 764 |
|
772 | 765 | 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 |
| - |
781 | 766 | if err := v.Unmarshal(&runConfig); err != nil {
|
782 |
| - reportErrorAndExit("", fmt.Sprintf("Could not parse user args: %v", err), 1) |
783 | 767 | }
|
784 | 768 |
|
785 | 769 | //SCMOrganisation, SCMrepository := utils.ParseRepoNamespace(runConfig.RepoNamespace)
|
@@ -884,7 +868,22 @@ func main() {
|
884 | 868 | log.Println("Lock provider has been created successfully")
|
885 | 869 |
|
886 | 870 | 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 | + |
888 | 887 | os.Exit(0)
|
889 | 888 | }
|
890 | 889 |
|
|
0 commit comments