code: func CreateFrom(chartfile *chart.Metadata, dest string, src string) error {
  	schart, err := Load(src)
  	if err != nil {
  		return fmt.Errorf("could not load %s: %s", src, err)
  	}
  
  	schart.Metadata = chartfile
  
  	var updatedTemplates []*chart.Template
  
  	for _, template := range schart.Templates {
  		newData := Transform(string(template.Data), "<CHARTNAME>", schart.Metadata.Name)
  		updatedTemplates = append(updatedTemplates, &chart.Template{Name: template.Name, Data: newData})
  	}
  
  	schart.Templates = updatedTemplates
  	if schart.Values != nil {
  		schart.Values = &chart.Config{Raw: string(Transform(schart.Values.Raw, "<CHARTNAME>", schart.Metadata.Name))}
  	}
  	return SaveDir(schart, dest)
  }
docs: // CreateFrom creates a new chart, but scaffolds it from the src chart.