feat(cli): add history command and logging for actions

This commit is contained in:
Patryk Hegenberg 2025-01-24 09:24:59 +01:00
parent f8abf29594
commit 8ed3b0c013
9 changed files with 110 additions and 4 deletions

View file

@ -43,8 +43,21 @@ func init() {
updateCmd.Flags().StringP("manager", "m", "os", "The package manager you want to update packages with. (Options: os|homebrew|pipx|flatpak)")
packageCmd.AddCommand(addCmd, deleteCmd, showCmd, enableCmd)
RootCmd.AddCommand(packageCmd, searchCmd, installCmd, removeCmd, updateCmd, updateAllCmd)
packageCmd.AddCommand(
addCmd,
deleteCmd,
showCmd,
enableCmd,
)
RootCmd.AddCommand(
packageCmd,
searchCmd,
installCmd,
removeCmd,
updateCmd,
updateAllCmd,
historyCmd,
)
}
func initConfig() {

28
cmd/history_cmd.go Normal file
View file

@ -0,0 +1,28 @@
package cmd
import (
"fmt"
"log"
"os"
"path/filepath"
"github.com/spf13/cobra"
)
var historyCmd = &cobra.Command{
Use: "history",
Short: "Zeigt die Befehlshistorie an",
Run: func(cmd *cobra.Command, args []string) {
dirname, err := os.UserConfigDir()
if err != nil {
log.Printf("error getting user config dir: %v\n", err)
}
historyFile := filepath.Join(dirname, "sst", "sst_history")
content, err := os.ReadFile(historyFile)
if err != nil {
fmt.Println("error reading history: ", err)
return
}
fmt.Println(string(content))
},
}

View file

@ -51,5 +51,8 @@ var installCmd = &cobra.Command{
if err := manager.Install([]string{packageName}); err != nil {
log.Printf("error: %v\n", err)
}
if err := utils.LogToHistory("installed", packageName, manager.Name()); err != nil {
fmt.Println("error logging action:", err)
}
},
}

View file

@ -4,6 +4,7 @@ import (
"fmt"
"os"
"sort"
"system_setup_tool/utils"
"github.com/spf13/cobra"
"github.com/spf13/viper"
@ -58,6 +59,9 @@ var addCmd = &cobra.Command{
}
fmt.Printf("Package %s has been added to the configuration for %s\n", name, manager)
if err := utils.LogToHistory("added", name, manager); err != nil {
fmt.Println("error logging action:", err)
}
},
}
@ -120,6 +124,9 @@ 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)
}
}
},
}
@ -187,5 +194,8 @@ var enableCmd = &cobra.Command{
}
fmt.Printf("Package manager %s has been %s\n", manager, map[bool]string{true: "enabled", false: "disabled"}[enable])
if err := utils.LogToHistory("enabled", "", manager); err != nil {
fmt.Println("error logging action:", err)
}
},
}

View file

@ -50,5 +50,8 @@ var removeCmd = &cobra.Command{
if err := manager.RemovePackage(packageName); err != nil {
log.Printf("error: %v\n", err)
}
if err := utils.LogToHistory("removed", packageName, manager.Name()); err != nil {
fmt.Println("error logging action:", err)
}
},
}

View file

@ -8,6 +8,7 @@ import (
"sync"
pm "system_setup_tool/packagemanager"
"system_setup_tool/utils"
"github.com/spf13/cobra"
)
@ -108,5 +109,8 @@ func searchConcurrently(managers []pm.PackageManager, packageName string) {
fmt.Printf("Results from %s:\n", result.manager.Name())
displayResults(result.results, result.manager.Name())
fmt.Println()
if err := utils.LogToHistory("searched", packageName, result.manager.Name()); err != nil {
fmt.Println("error logging action:", err)
}
}
}

View file

@ -53,10 +53,18 @@ var updateCmd = &cobra.Command{
if packageName != "" {
if err := manager.UpdatePackage(packageName); err != nil {
log.Printf("error: %v\n", err)
} else {
if err := utils.LogToHistory("updated", packageName, manager.Name()); err != nil {
fmt.Println("error logging action:", err)
}
}
} else {
if err := manager.UpdateAllPackages(); err != nil {
log.Printf("error: %v\n", err)
} else {
if err := utils.LogToHistory("updated", "all", "all"); err != nil {
fmt.Println("error logging action:", err)
}
}
}
},