Compare commits

...
Sign in to create a new pull request.

2 commits

Author SHA1 Message Date
3a321746bf refactor: replace log with slog 2025-06-12 10:20:38 +02:00
31881c2daf refactor: replace log with slog 2025-06-12 10:08:16 +02:00
11 changed files with 69 additions and 77 deletions

View file

@ -2,7 +2,7 @@ package cmd
import (
"fmt"
"log"
"log/slog"
"system_setup_tool/internal/utils"
pm "system_setup_tool/pkg/packagemanager"
@ -19,9 +19,10 @@ var checkCmd = &cobra.Command{
packageName := args[0]
managerName, _ := cmd.Flags().GetString("manager")
var manager pm.PackageManager
if managerName == "os" {
switch managerName {
case "os":
managerName = "OS Package Manager"
} else if managerName == "brew" {
case "brew":
managerName = "homebrew"
}
switch managerName {
@ -39,11 +40,11 @@ var checkCmd = &cobra.Command{
fmt.Println("No PackageManager found")
}
if err := manager.Check(packageName); err != nil {
log.Printf("error: %v\n", err)
slog.Error(err.Error())
}
fmt.Printf("Package: %s installed\n", packageName)
if err := utils.LogToHistory("checked", packageName, manager.Name()); err != nil {
fmt.Println("error logging action:", err)
slog.Error(fmt.Sprintf("error logging action: %v", err))
}
},
}

View file

@ -2,9 +2,10 @@ package cmd
import (
"fmt"
"log"
"log/slog"
"os"
"path/filepath"
"system_setup_tool/internal/tui"
"github.com/spf13/cobra"
@ -71,7 +72,7 @@ func initConfig() {
viper.SetConfigType("toml")
dirname, err := os.UserConfigDir()
if err != nil {
log.Println("cant obtain config dir")
slog.Error("cant obtain config dir")
} else {
viper.AddConfigPath(filepath.Join(dirname, "sst"))
}
@ -81,11 +82,11 @@ func initConfig() {
if _, ok := err.(viper.ConfigFileNotFoundError); ok {
fmt.Println("no config file found, creating a new one...")
if err := createDefaultConfig(); err != nil {
log.Printf("error creating default config: %v\n", err)
slog.Error(fmt.Sprintf("creating default config: %v\n", err))
os.Exit(1)
}
} else {
log.Printf("error reading config file: %v\n", err)
slog.Error(fmt.Sprintf("reading config file: %v\n", err))
os.Exit(1)
}
}
@ -119,7 +120,7 @@ func createDefaultConfig() error {
v.SetDefault("package_managers.os.packages", []string{})
configDir := filepath.Join(os.Getenv("HOME"), ".config", "sst")
if err := os.MkdirAll(configDir, 0755); err != nil {
if err := os.MkdirAll(configDir, 0o755); err != nil {
return fmt.Errorf("error creating config dir: %w", err)
}

View file

@ -2,7 +2,7 @@ package cmd
import (
"fmt"
"log"
"log/slog"
"os"
"path/filepath"
@ -16,7 +16,7 @@ var historyCmd = &cobra.Command{
Run: func(cmd *cobra.Command, args []string) {
dirname, err := os.UserConfigDir()
if err != nil {
log.Printf("error getting user config dir: %v\n", err)
slog.Error(fmt.Sprintf("getting user config dir: %v\n", err))
}
historyFile := filepath.Join(dirname, "sst", "sst_history")
content, err := os.ReadFile(historyFile)

View file

@ -2,8 +2,10 @@ package cmd
import (
"fmt"
"log"
"log/slog"
"os"
"runtime"
"system_setup_tool/internal/utils"
pm "system_setup_tool/pkg/packagemanager"
@ -20,9 +22,10 @@ var installCmd = &cobra.Command{
packageName := args[0]
managerName, _ := cmd.Flags().GetString("manager")
var manager pm.PackageManager
if managerName == "os" {
switch managerName {
case "os":
managerName = "OS Package Manager"
} else if managerName == "brew" {
case "brew":
managerName = "homebrew"
}
switch managerName {
@ -30,7 +33,8 @@ var installCmd = &cobra.Command{
if runtime.GOOS != "windows" {
sudoPassword, err := utils.GetSudoPassword()
if err != nil {
log.Fatal(err)
slog.Error(err.Error())
os.Exit(1)
}
manager = pm.NewOSManager(sudoPassword)
} else {
@ -49,7 +53,7 @@ var installCmd = &cobra.Command{
return
}
if err := manager.Install([]string{packageName}); err != nil {
log.Printf("error: %v\n", err)
slog.Error(err.Error())
}
if err := utils.LogToHistory("installed", packageName, manager.Name()); err != nil {
fmt.Println("error logging action:", err)

View file

@ -2,8 +2,11 @@ package cmd
import (
"fmt"
"log/slog"
"os"
"slices"
"sort"
"system_setup_tool/internal/utils"
"github.com/spf13/cobra"
@ -42,12 +45,10 @@ var addCmd = &cobra.Command{
} else {
packages := viper.GetStringSlice(fmt.Sprintf("package_managers.%s.packages", manager))
for _, pkg := range packages {
if pkg == name {
if slices.Contains(packages, name) {
fmt.Printf("Package %s is already present in the configuration for %s\n", name, manager)
return
}
}
packages = append(packages, name)
viper.Set(fmt.Sprintf("package_managers.%s.packages", manager), packages)
@ -87,7 +88,7 @@ var deleteCmd = &cobra.Command{
for i, pkg := range packages {
if pkg == name {
packages = append(packages[:i], packages[i+1:]...)
packages = slices.Delete(packages, i, i+1)
if isHeadless {
viper.Set("packages.headless", packages)
} else {
@ -95,7 +96,7 @@ var deleteCmd = &cobra.Command{
}
if err := viper.WriteConfig(); err != nil {
fmt.Printf("Error writing configuration: %v\n", err)
slog.Error(fmt.Sprintf("Error writing configuration: %v\n", err))
os.Exit(1)
}
@ -110,11 +111,11 @@ var deleteCmd = &cobra.Command{
for i, pkg := range packages {
if pkg == name {
packages = append(packages[:i], packages[i+1:]...)
packages = slices.Delete(packages, i, i+1)
viper.Set(fmt.Sprintf("package_managers.%s.packages", manager), packages)
if err := viper.WriteConfig(); err != nil {
fmt.Printf("Error writing configuration: %v\n", err)
slog.Error(fmt.Sprintf("Error writing configuration: %v\n", err))
os.Exit(1)
}
@ -125,7 +126,7 @@ var deleteCmd = &cobra.Command{
fmt.Printf("Package %s was not found in the configuration for %s\n", name, manager)
if err := utils.LogToHistory("removed", name, manager); err != nil {
fmt.Println("error logging action:", err)
slog.Error(fmt.Sprintf("error logging action: %v", err))
}
}
},

View file

@ -2,8 +2,9 @@ package cmd
import (
"fmt"
"log"
"log/slog"
"runtime"
"system_setup_tool/internal/utils"
pm "system_setup_tool/pkg/packagemanager"
@ -19,9 +20,10 @@ var removeCmd = &cobra.Command{
packageName := args[0]
managerName, _ := cmd.Flags().GetString("manager")
var manager pm.PackageManager
if managerName == "os" {
switch managerName {
case "os":
managerName = "OS Package Manager"
} else if managerName == "brew" {
case "brew":
managerName = "homebrew"
}
switch managerName {
@ -29,7 +31,7 @@ var removeCmd = &cobra.Command{
if runtime.GOOS != "windows" {
sudoPassword, err := utils.GetSudoPassword()
if err != nil {
log.Fatal(err)
slog.Error(err.Error())
}
manager = pm.NewOSManager(sudoPassword)
} else {
@ -48,10 +50,10 @@ var removeCmd = &cobra.Command{
return
}
if err := manager.RemovePackage(packageName); err != nil {
log.Printf("error: %v\n", err)
slog.Error(err.Error())
}
if err := utils.LogToHistory("removed", packageName, manager.Name()); err != nil {
fmt.Println("error logging action:", err)
slog.Error(fmt.Sprintf("error logging action: %v", err))
}
},
}

View file

@ -2,7 +2,7 @@ package cmd
import (
"fmt"
"log"
"log/slog"
"runtime"
"strings"
"sync"
@ -21,9 +21,10 @@ var searchCmd = &cobra.Command{
Run: func(cmd *cobra.Command, args []string) {
packageName := args[0]
managerName, _ := cmd.Flags().GetString("manager")
if managerName == "os" {
switch managerName {
case "os":
managerName = "OS Package Manager"
} else if managerName == "brew" {
case "brew":
managerName = "homebrew"
}
@ -46,7 +47,7 @@ var searchCmd = &cobra.Command{
pm.NewOSManager(""),
}
default:
log.Println("No Package Managers found")
slog.Info("No Package Managers found")
}
if managerName != "" {

View file

@ -3,8 +3,10 @@ package cmd
import (
"fmt"
"log"
"log/slog"
"runtime"
"sync"
"system_setup_tool/internal/utils"
pm "system_setup_tool/pkg/packagemanager"
@ -21,9 +23,10 @@ var updateCmd = &cobra.Command{
packageName := args[0]
managerName, _ := cmd.Flags().GetString("manager")
var manager pm.PackageManager
if managerName == "os" {
switch managerName {
case "os":
managerName = "OS Package Manager"
} else if managerName == "brew" {
case "brew":
managerName = "homebrew"
}
@ -47,23 +50,23 @@ var updateCmd = &cobra.Command{
case "flatpak":
manager = &pm.FlatpakManager{}
default:
fmt.Println("No PackageManager found")
slog.Info("No PackageManager found")
return
}
if packageName != "" {
if err := manager.UpdatePackage(packageName); err != nil {
log.Printf("error: %v\n", err)
slog.Error(err.Error())
} else {
if err := utils.LogToHistory("updated", packageName, manager.Name()); err != nil {
fmt.Println("error logging action:", err)
slog.Error(fmt.Sprintf("error logging action: %v", err))
}
}
} else {
if err := manager.UpdateAllPackages(); err != nil {
log.Printf("error: %v\n", err)
slog.Error(err.Error())
} else {
if err := utils.LogToHistory("updated", "all", "all"); err != nil {
fmt.Println("error logging action:", err)
slog.Error(fmt.Sprintf("error logging action: %v", err))
}
}
}
@ -74,7 +77,6 @@ var updateAllCmd = &cobra.Command{
Use: "update-all",
Short: "update all packages with all package managers.",
Run: func(cmd *cobra.Command, args []string) {
var managers []pm.PackageManager
switch runtime.GOOS {
case "linux":
@ -120,7 +122,7 @@ func updateAllConcurrently(managers []pm.PackageManager) {
fmt.Printf("Updating %s-Packages\n", manager.Name())
err := manager.UpdateAllPackages()
if err != nil {
log.Printf("Error updating %s: %v\n", manager.Name(), err)
slog.Error(fmt.Sprintf("updating %s: %v\n", manager.Name(), err))
}
}(m)
}

View file

@ -2,9 +2,10 @@ package dotfiles
import (
"fmt"
"log"
"log/slog"
"os"
"path/filepath"
"system_setup_tool/internal/shell"
)
@ -35,7 +36,7 @@ func SetupDotfiles(config DotfilesConfig) error {
cmd = shell.ExecCommand("stow", ".", "--override='*'")
if err := cmd.Run(); err != nil {
log.Printf("error creating links: %v", err)
slog.Error(fmt.Sprintf("error creating links: %v", err))
}
fmt.Printf("all linked properly\n")

View file

@ -3,6 +3,8 @@ package tui
import (
"fmt"
"log"
"log/slog"
"system_setup_tool/internal/config"
"system_setup_tool/internal/dotfiles"
"system_setup_tool/internal/utils"
@ -28,30 +30,6 @@ func Run(cmd *cobra.Command, args []string) {
log.Fatalf("Fehler beim Lesen der Konfiguration: %v", err)
}
// form := huh.NewForm(
// huh.NewGroup(
// huh.NewConfirm().
// Title("Möchten Sie eine headless Installation durchführen?").
// Value(&cfg.Headless),
// ),
// ).WithTheme(huh.ThemeCatppuccin())
//
// if err := form.Run(); err != nil {
// log.Fatalf("Fehler bei der Benutzerabfrage: %v", err)
// }
//
// osManager := pm.NewOSManager(sudoPassword)
//
// if err := osManager.Install(cfg.Packages.Headless); err != nil {
// log.Printf("Warnung bei der Installation der Headless-Pakete: %v", err)
// }
// if !cfg.Headless {
// if err := osManager.Install(cfg.Packages.NonHeadless); err != nil {
// log.Printf("Warnung bei der Installation der Non-Headless-Pakete: %v", err)
// }
// }
//
for name, config := range cfg.PackageManagers {
if config.Enable {
var manager pm.PackageManager
@ -74,15 +52,15 @@ func Run(cmd *cobra.Command, args []string) {
}
manager = pm.NewFlatpakManager(sudoPassword, flatpakConfig)
default:
log.Printf("unknown packagemanager: %s", name)
slog.Warn(fmt.Sprintf("unknown packagemanager: %s", name))
continue
}
if err := manager.InstallManager(); err != nil {
log.Printf("warning packagemanager %s not installed and could not be installed: %v", manager.Name(), err)
slog.Warn(fmt.Sprintf("packagemanager %s not installed and could not be installed: %v", manager.Name(), err))
}
if err := manager.Install(config.Packages); err != nil {
log.Printf("warning at %s-packages: %v", manager.Name(), err)
slog.Warn(fmt.Sprintf("warning at %s-packages: %v", manager.Name(), err))
}
}
}

View file

@ -1,14 +1,15 @@
package main
import (
"log"
"log/slog"
"os"
"system_setup_tool/cmd"
)
func main() {
if err := cmd.RootCmd.Execute(); err != nil {
log.Println(err)
slog.Error(err.Error())
os.Exit(1)
}
}