func inspectVars()

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
}