in tooling/templatize/pkg/pipeline/inspect.go [76:111]
func inspectVars(ctx context.Context, pipeline *Pipeline, s Step, options *InspectOptions) error {
var envVars map[string]string
switch step := s.(type) {
case *ShellStep:
outputChainingDependencies := make(map[string]bool)
for _, stepVar := range step.Variables {
if stepVar.Input != nil && stepVar.Input.Step != "" {
outputChainingDependencies[stepVar.Input.Step] = true
}
}
outputChainingDependenciesList := make([]string, 0, len(outputChainingDependencies))
for depStep := range outputChainingDependencies {
outputChainingDependenciesList = append(outputChainingDependenciesList, depStep)
}
inputs, err := aquireOutputChainingInputs(ctx, outputChainingDependenciesList, pipeline, options)
if err != nil {
return err
}
envVars, err = step.mapStepVariables(options.Configuration, inputs)
if err != nil {
return err
}
default:
return fmt.Errorf("inspecting step variables not implemented for action type %s", s.ActionType())
}
switch options.Format {
case "makefile":
printMakefileVars(envVars, options.OutputFile)
case "shell":
printShellVars(envVars, options.OutputFile)
default:
return fmt.Errorf("unknown output format %q", options.Format)
}
return nil
}