in packaging/linux/rpm/sources.go [64:108]
func ToSourcesLLB(worker llb.State, spec *dalec.Spec, sOpt dalec.SourceOpts, opts ...llb.ConstraintsOpt) ([]llb.State, error) {
sources, err := dalec.Sources(spec, sOpt)
if err != nil {
return nil, err
}
out := make([]llb.State, 0, len(sources))
withPG := func(s string) []llb.ConstraintsOpt {
return append(opts, dalec.ProgressGroup(s))
}
gomodSt, err := spec.GomodDeps(sOpt, worker, withPG("Add gomod sources")...)
if err != nil {
return nil, errors.Wrap(err, "error adding gomod sources")
}
cargohomeSt, err := spec.CargohomeDeps(sOpt, worker, withPG("Add cargohome sources")...)
if err != nil {
return nil, errors.Wrap(err, "error adding cargohome sources")
}
sorted := dalec.SortMapKeys(sources)
for _, k := range sorted {
st := sources[k]
if dalec.SourceIsDir(spec.Sources[k]) {
st = st.With(sourceTar(worker, k, withPG("Tar source: "+k)...))
}
out = append(out, st)
}
if gomodSt != nil {
out = append(out, gomodSt.With(sourceTar(worker, gomodsName, withPG("Tar gomod deps")...)))
}
if cargohomeSt != nil {
out = append(out, cargohomeSt.With(sourceTar(worker, cargohomeName, withPG("Tar cargohome deps")...)))
}
scriptSt := buildScriptSourceState(spec)
if scriptSt != nil {
out = append(out, *scriptSt)
}
return out, nil
}