in targets/target.go [248:290]
func (t *Target) Packager(projectName, distro, version string) (Packager, error) {
var mappings map[string]archive.Archive
switch projectName {
case "moby-engine":
mappings = engine.Archives
case "moby-cli":
mappings = cli.Archives
case "moby-containerd":
ls, err := containerd.Archives(version)
if err != nil {
return nil, err
}
mappings = ls
case "moby-containerd-shim-systemd":
mappings = shim.Archives
case "moby-runc":
mappings = runc.Archives
case "moby-compose":
mappings = compose.Archives
case "moby-buildx":
mappings = buildx.Archives
case "moby-tini":
mappings = tini.Archives
default:
return nil, fmt.Errorf("unsupported project: %s", projectName)
}
a, ok := mappings[distro]
if !ok {
return nil, fmt.Errorf("unsupported distro: %s", distro)
}
switch t.PkgKind() {
case "deb":
return archive.NewDebPackager(&a, MirrorPrefix()), nil
case "rpm":
return archive.NewRPMPackager(&a, MirrorPrefix()), nil
case "win":
return archive.NewWinPackager(&a, MirrorPrefix()), nil
default:
panic("unknown pkgKind: " + t.pkgKind)
}
}