Refactor package.go

This commit is contained in:
John Gardiner Myers 2020-05-04 23:17:39 -07:00
parent 06c6ac1bee
commit 6b011c044b
1 changed files with 21 additions and 43 deletions

View File

@ -297,6 +297,7 @@ func (_ *Package) RenderLocal(t *local.LocalTarget, a, e, changes *Package) erro
if a == nil || changes.Version != nil {
klog.Infof("Installing package %q (dependencies: %v)", e.Name, e.Deps)
var localPkgs []string
if e.Source != nil {
// Install a deb or rpm.
@ -316,7 +317,7 @@ func (_ *Package) RenderLocal(t *local.LocalTarget, a, e, changes *Package) erro
}
// Download all the debs/rpms.
localPkgs := make([]string, 1+len(e.Deps))
localPkgs = make([]string, 1+len(e.Deps))
for i, pkg := range append([]*Package{e}, e.Deps...) {
local := path.Join(localPackageDir, pkg.Name+ext)
localPkgs[i] = local
@ -333,53 +334,30 @@ func (_ *Package) RenderLocal(t *local.LocalTarget, a, e, changes *Package) erro
return err
}
}
}
var args []string
env := os.Environ()
if t.HasTag(tags.TagOSFamilyDebian) {
args = []string{"apt-get", "install", "--yes", "--no-install-recommends"}
env = append(env, "DEBIAN_FRONTEND=noninteractive")
} else if t.HasTag(tags.TagOSFamilyRHEL) {
if t.HasTag(tags.TagOSCentOS8) || t.HasTag(tags.TagOSRHEL8) {
args = []string{"/usr/bin/dnf", "install", "-y", "--setopt=install_weak_deps=False"}
} else {
args = []string{"/usr/bin/yum", "install", "-y"}
}
var args []string
env := os.Environ()
if t.HasTag(tags.TagOSFamilyDebian) {
args = []string{"apt-get", "install", "--yes", "--no-install-recommends"}
env = append(env, "DEBIAN_FRONTEND=noninteractive")
} else if t.HasTag(tags.TagOSFamilyRHEL) {
if t.HasTag(tags.TagOSCentOS8) || t.HasTag(tags.TagOSRHEL8) {
args = []string{"/usr/bin/dnf", "install", "-y", "--setopt=install_weak_deps=False"}
} else {
return fmt.Errorf("unsupported package system")
}
args = append(args, localPkgs...)
klog.Infof("running command %s", args)
cmd := exec.Command(args[0], args[1:]...)
cmd.Env = env
output, err := cmd.CombinedOutput()
if err != nil {
return fmt.Errorf("error installing package %q: %v: %s", e.Name, err, string(output))
args = []string{"/usr/bin/yum", "install", "-y"}
}
} else {
var args []string
env := os.Environ()
if t.HasTag(tags.TagOSFamilyDebian) {
args = []string{"apt-get", "install", "--yes", "--no-install-recommends", e.Name}
env = append(env, "DEBIAN_FRONTEND=noninteractive")
} else if t.HasTag(tags.TagOSFamilyRHEL) {
if t.HasTag(tags.TagOSCentOS8) || t.HasTag(tags.TagOSRHEL8) {
args = []string{"/usr/bin/dnf", "install", "-y", "--setopt=install_weak_deps=False", e.Name}
} else {
args = []string{"/usr/bin/yum", "install", "-y", e.Name}
}
} else {
return fmt.Errorf("unsupported package system")
}
return fmt.Errorf("unsupported package system")
}
args = append(args, localPkgs...)
klog.Infof("running command %s", args)
cmd := exec.Command(args[0], args[1:]...)
cmd.Env = env
output, err := cmd.CombinedOutput()
if err != nil {
return fmt.Errorf("error installing package %q: %v: %s", e.Name, err, string(output))
}
klog.Infof("running command %s", args)
cmd := exec.Command(args[0], args[1:]...)
cmd.Env = env
output, err := cmd.CombinedOutput()
if err != nil {
return fmt.Errorf("error installing package %q: %v: %s", e.Name, err, string(output))
}
} else {
if changes.Healthy != nil {