func setupExecuteCommands()

in codecatalyst-runner/cmd/execute.go [16:56]


func setupExecuteCommands(rootCmd *cobra.Command) {
	params := new(workflows.RunParams)

	var defaultOutputMode workflows.OutputMode
	if os.Getenv("CI") != "true" && term.IsTerminal(int(os.Stdout.Fd())) {
		defaultOutputMode = workflows.OutputModeTUI
	} else {
		defaultOutputMode = workflows.OutputModeText
	}
	rootCmd.PersistentFlags().BoolVarP(&params.Reuse, "reuse", "R", false, "Reuse containers between executions")
	rootCmd.PersistentFlags().StringVarP(&params.WorkingDir, "working-dir", "w", ".", "directory to run workflow against")
	rootCmd.PersistentFlags().StringVarP(&params.WorkflowPath, "workflow-file", "f", "", "path to workflow to run")
	rootCmd.PersistentFlags().StringVarP(&params.Action, "action", "a", "", "action to run (default: *)")
	rootCmd.PersistentFlags().BoolVarP(&params.BindWorkingDir, "bind", "b", false, "bind working directory rather than create a copy")
	rootCmd.PersistentFlags().BoolVarP(&params.NoOutput, "quiet", "q", false, "disable logging of output from actions")
	rootCmd.PersistentFlags().BoolVarP(&params.Dryrun, "dryrun", "n", false, "dry run")
	rootCmd.PersistentFlags().BoolVarP(&params.NoCache, "no-cache", "C", false, "disable file caches")
	rootCmd.PersistentFlags().StringVarP((*string)(&params.ExecutionType), "executor", "x", string(runner.DefaultExecutionType()), "executor type [docker,finch,shell]")
	rootCmd.PersistentFlags().IntVarP(&params.Concurrency, "concurrency", "c", runtime.NumCPU(), "number of policies to execute concurrently")
	rootCmd.PersistentFlags().StringToStringVarP(&params.EnvironmentProfiles, "environments", "e", make(map[string]string), "map workflow environment names to AWS CLI profile names")
	rootCmd.PersistentFlags().StringVarP((*string)(&params.OutputMode), "output-format", "t", string(defaultOutputMode), "output mode [tui,text]")

	executeCommand := func(cmd *cobra.Command, args []string) error {
		if len(args) == 1 {
			params.WorkflowName = args[0]
		}
		ctx := cmd.Context()
		err := workflows.Run(ctx, params)
		log.Ctx(ctx).Debug().Err(err).Msg("execute complete")
		return err
	}
	rootCmd.AddCommand(&cobra.Command{
		Use:     "execute",
		Aliases: []string{"exec"},
		Short:   "Execute actions",
		RunE:    executeCommand,
		Args:    cobra.MaximumNArgs(1),
	})
	rootCmd.RunE = executeCommand
	rootCmd.Args = cobra.MaximumNArgs(1)
}