in packaging/linux/rpm/template.go [280:330]
func (w *specWrapper) Sources() (fmt.Stringer, error) {
b := &strings.Builder{}
// Sort keys for consistent output
keys := dalec.SortMapKeys(w.Spec.Sources)
for idx, name := range keys {
src := w.Spec.Sources[name]
ref := name
isDir := dalec.SourceIsDir(src)
if isDir {
ref += ".tar.gz"
}
doc, err := src.Doc(name)
if err != nil {
return nil, fmt.Errorf("error getting doc for source %s: %w", name, err)
}
scanner := bufio.NewScanner(doc)
for scanner.Scan() {
fmt.Fprintf(b, "# %s\n", scanner.Text())
}
if scanner.Err() != nil {
return nil, scanner.Err()
}
fmt.Fprintf(b, "Source%d: %s\n", idx, ref)
}
sourceIdx := len(keys)
if w.Spec.HasGomods() {
fmt.Fprintf(b, "Source%d: %s.tar.gz\n", sourceIdx, gomodsName)
sourceIdx += 1
}
if w.Spec.HasCargohomes() {
fmt.Fprintf(b, "Source%d: %s.tar.gz\n", sourceIdx, cargohomeName)
sourceIdx += 1
}
if len(w.Spec.Build.Steps) > 0 {
fmt.Fprintf(b, "Source%d: %s\n", sourceIdx, buildScriptName)
}
if len(keys) > 0 {
b.WriteString("\n")
}
return b, nil
}