fix(packagemanager): reimplement getPackagemanager to enable installing buildtools on linux

This commit is contained in:
Patryk Hegenberg 2025-01-22 13:21:47 +01:00
parent afaf7707aa
commit 53a50f2be4

View file

@ -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)
}
}