Carry dependencies through pipeline commands

This commit is contained in:
2026-09-05 17:53:56 +00:00
parent c3307ab5fb
commit dd905c4daa
13 changed files with 153 additions and 89 deletions

View File

@@ -11,10 +11,15 @@ var supportedCommands = []string{"version", "run", "regenerate-artifacts", "run-
// Execute dispatches CLI commands and returns a process exit code.
func Execute(args []string, stdout, stderr io.Writer) int {
return executeWithPipelineExecutor(args, stdout, stderr, executePlan)
return executeWithDependencies(args, stdout, stderr, commandDependencies{}, executePlan)
}
func executeWithPipelineExecutor(args []string, stdout, stderr io.Writer, executor pipelineExecutor) int {
return executeWithDependencies(args, stdout, stderr, commandDependencies{}, executor)
}
func executeWithDependencies(args []string, stdout, stderr io.Writer, deps commandDependencies, executor pipelineExecutor) int {
deps = normalizeCommandDependencies(deps)
if len(args) == 0 {
printUsage(stderr)
return 1
@@ -29,17 +34,17 @@ func executeWithPipelineExecutor(args []string, stdout, stderr io.Writer, execut
case "version":
err = Version(cmdArgs, stdout)
case "run":
err = runWithPipelineExecutor(ctx, cmdArgs, stdout, executor)
err = runWithDependencies(ctx, cmdArgs, stdout, executor, deps)
case "regenerate-artifacts":
err = regenerateArtifactsWithPipelineExecutor(ctx, cmdArgs, stdout, executor)
err = regenerateArtifactsWithDependencies(ctx, cmdArgs, stdout, executor, deps)
case "run-stage":
err = runStageWithPipelineExecutor(ctx, cmdArgs, stdout, executor)
err = runStageWithDependencies(ctx, cmdArgs, stdout, executor, deps)
case "analyze":
err = analyzeWithPipelineExecutor(ctx, cmdArgs, stdout, executor)
err = analyzeWithDependencies(ctx, cmdArgs, stdout, executor, deps)
case "publish":
err = publishWithPipelineExecutor(ctx, cmdArgs, stdout, executor)
err = publishWithDependencies(ctx, cmdArgs, stdout, executor, deps)
case "session":
err = Session(ctx, cmdArgs, stdout)
err = sessionWithDependencies(ctx, cmdArgs, stdout, deps)
case "clean":
err = Clean(ctx, cmdArgs, stdout)
case "config":