func()

in pkg/runner/step_resource_parser.go [24:45]


func (p *StepResourceParser) Parse(workDir string, stepRef *proto.Step_Reference) (StepResource, error) {
	stepPath := p.stepPath(stepRef)

	switch stepRef.Protocol {
	case proto.StepReferenceProtocol_local:
		return NewFileSystemStepResource(workDir, stepPath, stepRef.Filename), nil

	case proto.StepReferenceProtocol_git:
		return NewGitStepResource(p.gitFetcher, stepRef.Url, stepRef.Version, stepPath, stepRef.Filename), nil

	case proto.StepReferenceProtocol_dist:
		return NewDistStepResource(p.distFetcher, stepPath, stepRef.Filename), nil

	case proto.StepReferenceProtocol_dynamic:
		return NewDynamicStepResource(p, stepRef.Url), nil

	case proto.StepReferenceProtocol_spec_def:
		return NewFixedStepResource(NewSpecDefinition(stepRef.SpecDef.Spec, stepRef.SpecDef.Definition, stepPath)), nil
	}

	return nil, fmt.Errorf("unknown step reference protocol: %s", stepRef.Protocol)
}