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], "\"")
|
||||
}
|
||||
}
|
||||
err := result.getPackageManager()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
return &result
|
||||
}
|
||||
|
||||
|
|
@ -230,3 +234,31 @@ func getPlatformInfo() (*OS, error) {
|
|||
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