func GetTemplate()

in pkg/handlers/template.go [29:60]


func GetTemplate(name, version, dest string, templateWriter templatewriter.TemplateWriter) (*Template, error) {
	template, ok := templateConfigs[strings.ToLower(name)]
	if !ok {
		return nil, fmt.Errorf("template not found: %s", name)
	}

	template = template.DeepCopy()

	if version == "" {
		version = template.Config.DefaultVersion
		log.Println("version not provided, using default version: ", version)
	}

	if !IsValidVersion(template.Config.Versions, version) {
		return nil, fmt.Errorf("invalid version: %s", version)
	}

	if dest == "" {
		dest = "."
		log.Println("destination not provided, using current directory")
	}

	if _, err := filepath.Abs(dest); err != nil {
		return nil, fmt.Errorf("invalid destination: %s", dest)
	}

	template.dest = dest
	template.version = version
	template.templateWriter = templateWriter

	return template, nil
}