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

@ -2,6 +2,8 @@ package cmd
import (
"fmt"
"log"
"runtime"
"strings"
pm "system_setup_tool/packagemanager"
@ -22,10 +24,26 @@ var searchCmd = &cobra.Command{
managerName = "homebrew"
}
managers := []pm.PackageManager{
pm.NewOSManager(""),
&pm.HomebrewManager{},
&pm.FlatpakManager{},
var managers []pm.PackageManager
switch runtime.GOOS {
case "linux":
managers = []pm.PackageManager{
pm.NewOSManager(""),
&pm.HomebrewManager{},
&pm.FlatpakManager{},
}
case "windows":
managers = []pm.PackageManager{
pm.NewOSManager(""),
&pm.WingetManager{},
&pm.ChocoManager{},
}
case "darwin":
managers = []pm.PackageManager{
pm.NewOSManager(""),
}
default:
log.Println("No Package Managers found")
}
if managerName != "" {