in pkg/archive/deb.go [191:237]
func (d *DebPackager) withControlFile(c *dagger.Container, version string, project *Spec) *dagger.Container {
t := ControlTemplate
tpl, err := template.New("control").Funcs(template.FuncMap{"join": join}).Parse(t)
if err != nil {
panic(err)
}
buf := new(bytes.Buffer)
err = tpl.Execute(buf, d.a)
if err != nil {
panic(err)
}
return c.
WithNewFile("/build/debian/control", buf.String()).
WithEnvVariable("PROJECT_NAME", project.Pkg).
WithEnvVariable("VERSION", version).
WithEnvVariable("DISTRO", project.Distro).
WithEnvVariable("_BINARIES", strings.Join(d.a.Binaries, " ")).
WithExec([]string{
"bash", "-exuc", `
: ${PROJECT_NAME}
: ${VERSION}
: ${DISTRO}
: ${_BINARIES}
cat /build/debian/control
BINARIES=($_BINARIES)
cat <<EOF > debian/changelog
$PROJECT_NAME ($VERSION) $DISTRO; urgency=low
* Version: 1.0
-- Microsoft <support@microsoft.com> Mon, 12 Mar 2018 00:00:00 +0000
EOF
args=()
for b in "${BINARIES[@]}"; do
args+=(-e "$b")
done
dpkg-shlibdeps "${args[@]}"
dpkg-gencontrol -P/package -Ocontrol
`,
})
}