func yamlStep()

in cmd/run/run.go [196:236]


func yamlStep(options *Options) ([]byte, error) {
	yml := bytes.NewBufferString("")

	if strings.HasPrefix(options.Step, "step:") {
		yml.WriteString(fmt.Sprintf("- %s\n", options.Step))
	} else if options.Step != "" {
		yml.WriteString(fmt.Sprintf("- step: %s\n", options.Step))
	} else if options.GitURL != "" {
		yml.WriteString("- step:\n")
		yml.WriteString("    git:\n")
		yml.WriteString(fmt.Sprintf("      url: %s\n", options.GitURL))

		if options.GitRev != "" {
			yml.WriteString(fmt.Sprintf("      rev: %s\n", options.GitRev))
		}

		if options.GitDir != "" {
			yml.WriteString(fmt.Sprintf("      dir: %s\n", options.GitDir))
		}
	} else if options.OCIRegistry != "" {
		yml.WriteString("- step:\n")
		yml.WriteString("    oci:\n")
		yml.WriteString(fmt.Sprintf("      registry: %s\n", options.OCIRegistry))
		yml.WriteString(fmt.Sprintf("      repository: %s\n", options.OCIRepository))
		yml.WriteString(fmt.Sprintf("      tag: %s\n", options.OCITag))

		if options.OCIDir != "" {
			yml.WriteString(fmt.Sprintf("      dir: %s\n", options.OCIDir))
		}

		if options.OCIFilename != "" {
			yml.WriteString(fmt.Sprintf("      file: %s\n", options.OCIFilename))
		}
	} else {
		return nil, fmt.Errorf("no step specified")
	}

	yml.WriteString(yamlObject("inputs", options.Inputs))
	yml.WriteString(yamlObject("env", options.Env))
	return yml.Bytes(), nil
}