package main import ( "log" "github.com/spf13/cobra" ) var removeCmd = &cobra.Command{ Use: "remove [package_name]", Short: "Remove a package with the specified package manager", Args: cobra.ExactArgs(1), Run: func(cmd *cobra.Command, args []string) { packageName := args[0] managerName, _ := cmd.Flags().GetString("manager") var manager PackageManager switch managerName { case "os": opSys, err := getLinuxDistribution() if err != nil { log.Printf("error getting OS information: %v", err) } sudoPassword, err := getSudoPassword() if err != nil { log.Fatal(err) } osManager := NewOSManager(opSys, sudoPassword, []string{packageName}) if err := osManager.Install([]string{packageName}); err != nil { log.Printf("error: %v\n", err) } case "homebrew": manager = &HomebrewManager{} case "cargo": manager = &CargoManager{} case "pipx": manager = &PipxManager{} case "flatpak": manager = &FlatpakManager{} default: } if err := manager.RemovePackage(packageName); err != nil { log.Printf("error: %v\n", err) } }, }