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:
parent
8dabc7357b
commit
8281883e4d
12 changed files with 422 additions and 186 deletions
|
|
@ -3,6 +3,7 @@ package cmd
|
|||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"runtime"
|
||||
"system_setup_tool/utils"
|
||||
|
||||
pm "system_setup_tool/packagemanager"
|
||||
|
|
@ -24,14 +25,15 @@ var installCmd = &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{}
|
||||
|
|
@ -45,7 +47,7 @@ var installCmd = &cobra.Command{
|
|||
fmt.Println("No PackageManager found")
|
||||
return
|
||||
}
|
||||
if err := manager.InstallPackage(packageName); err != nil {
|
||||
if err := manager.Install([]string{packageName}); err != nil {
|
||||
log.Printf("error: %v\n", err)
|
||||
}
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue