feat(cli): add history command and logging for actions
This commit is contained in:
parent
f8abf29594
commit
8ed3b0c013
9 changed files with 110 additions and 4 deletions
17
cmd/cmd.go
17
cmd/cmd.go
|
|
@ -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
28
cmd/history_cmd.go
Normal 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))
|
||||
},
|
||||
}
|
||||
|
|
@ -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)
|
||||
}
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue