func()

in pkg/archive/deb.go [82:116]


func (d *DebPackager) Package(client *dagger.Client, c *dagger.Container, project *Spec) *dagger.Directory {
	dir := client.Directory()
	rootDir := "/package"

	version := fmt.Sprintf("%s-%su%s", project.Tag, DebDistroMap[project.Distro], project.Revision)
	c = c.WithDirectory(rootDir, dir)
	c = d.moveStaticFiles(c, rootDir)
	c = d.withControlFile(c, version, project)

	pkgDir := c.Directory(rootDir)

	fpmArgs := []string{"fpm",
		"-s", "dir",
		"-t", "deb",
		"-n", project.Pkg,
		"--version", version,
		"--architecture", strings.Replace(project.Arch, "/", "", -1),
		"--deb-custom-control", "/build/control",
	}

	var newArgs []string
	c, newArgs = d.withInstallScripts(c)

	fpmArgs = append(fpmArgs, d.systemdArgs()...)
	fpmArgs = append(fpmArgs, newArgs...)
	fpmArgs = append(fpmArgs, ".")

	fpm := fpmContainer(client, d.mirrorPrefix)
	return fpm.WithDirectory("/package", pkgDir).
		WithDirectory("/build", c.Directory("/build")).
		WithWorkdir("/package").
		WithExec(fpmArgs).
		WithExec([]string{"bash", "-ec", `mkdir -vp /out; mv *.deb /out`}).
		Directory("/out")
}