feat(cli,packagemanager): implemented first working windows and macos versions

in order to implement sst for windows and macos the structure of
osmanager has been changed.
Now osmanager has a new field pm, which contains the specific
packagemanager for the os.
Linux packagemanagers have been implemented as packagemanagers on their
own.
This commit is contained in:
Patryk Hegenberg 2025-01-20 21:28:44 +01:00
parent 8dabc7357b
commit 8281883e4d
12 changed files with 422 additions and 186 deletions

View file

@ -3,6 +3,7 @@ package cmd
import (
"fmt"
"log"
"runtime"
"system_setup_tool/utils"
pm "system_setup_tool/packagemanager"
@ -24,14 +25,15 @@ var removeCmd = &cobra.Command{
managerName = "homebrew"
}
switch managerName {
case "os":
sudoPassword, err := utils.GetSudoPassword()
if err != nil {
log.Fatal(err)
}
osManager := pm.NewOSManager(sudoPassword)
if err := osManager.Install([]string{packageName}); err != nil {
log.Printf("error: %v\n", err)
case "OS Package Manager":
if runtime.GOOS != "windows" {
sudoPassword, err := utils.GetSudoPassword()
if err != nil {
log.Fatal(err)
}
manager = pm.NewOSManager(sudoPassword)
} else {
manager = pm.NewOSManager("")
}
case "homebrew":
manager = &pm.HomebrewManager{}