package cmd import ( "fmt" "log" "codeberg.org/Pata1704/system_setup_tool/internal/utils" pm "codeberg.org/Pata1704/system_setup_tool/pkg/packagemanager" "github.com/spf13/cobra" ) var checkCmd = &cobra.Command{ Use: "check [package-name]", Short: "Check if the specified package is installed", Args: cobra.ExactArgs(1), Aliases: []string{"c"}, Run: func(cmd *cobra.Command, args []string) { packageName := args[0] managerName, _ := cmd.Flags().GetString("manager") var manager pm.PackageManager if managerName == "os" { managerName = "OS Package Manager" } else if managerName == "brew" { managerName = "homebrew" } switch managerName { case "OS Package Manager": manager = pm.NewOSManager("") case "homebrew": manager = &pm.HomebrewManager{} case "cargo": manager = &pm.CargoManager{} case "pipx": manager = &pm.PipxManager{} case "flatpak": manager = &pm.FlatpakManager{} default: fmt.Println("No PackageManager found") } if err := manager.Check(packageName); err != nil { log.Printf("error: %v\n", err) } fmt.Printf("Package: %s installed\n", packageName) if err := utils.LogToHistory("checked", packageName, manager.Name()); err != nil { fmt.Println("error logging action:", err) } }, }