fix(packagemanager): reimplement getPackagemanager to enable installing buildtools on linux
This commit is contained in:
parent
afaf7707aa
commit
53a50f2be4
1 changed files with 32 additions and 0 deletions
|
|
@ -156,6 +156,10 @@ func parseOsRelease(osRelease string) *OS {
|
||||||
result.Version = strings.Trim(splitLine[1], "\"")
|
result.Version = strings.Trim(splitLine[1], "\"")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
err := result.getPackageManager()
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
return &result
|
return &result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -230,3 +234,31 @@ func getPlatformInfo() (*OS, error) {
|
||||||
return nil, fmt.Errorf("unsupported operating system: %s", runtime.GOOS)
|
return nil, fmt.Errorf("unsupported operating system: %s", runtime.GOOS)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (os *OS) getPackageManager() error {
|
||||||
|
switch os.ID {
|
||||||
|
case "debian", "ubuntu":
|
||||||
|
os.PackageManager = "apt"
|
||||||
|
return nil
|
||||||
|
case "arch":
|
||||||
|
os.PackageManager = "pacman"
|
||||||
|
return nil
|
||||||
|
case "fedora":
|
||||||
|
os.PackageManager = "dnf"
|
||||||
|
return nil
|
||||||
|
default:
|
||||||
|
pmcommands := []string{
|
||||||
|
"apt",
|
||||||
|
"dnf",
|
||||||
|
"pacman",
|
||||||
|
}
|
||||||
|
for _, pmname := range pmcommands {
|
||||||
|
_, err := shell.ExecLookPath(pmname)
|
||||||
|
if err == nil {
|
||||||
|
os.PackageManager = pmname
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return fmt.Errorf("no packagemanager found fos os: %s", os.Name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue