func()

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
        `,
		})
}