Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var RemoveCmd = &cobra.Command{ Use: "remove [pkg]", Short: "remove a package", Long: `The "remove" subcommand removes a prompt-selected version of a given package.`, Example: `webman remove go webman remove zig webman remove rg`, RunE: func(cmd *cobra.Command, args []string) error { if len(args) != 1 { return cmd.Help() } cfg, err := config.Load() if err != nil { return err } pkg := args[0] pkgDir := filepath.Join(utils.WebmanPkgDir, pkg) dirEntries, err := os.ReadDir(pkgDir) if err != nil { if os.IsNotExist(err) { fmt.Printf("No versions of %s are currently installed.\n", color.CyanString(pkg)) return nil } return err } using, err := pkgparse.CheckUsing(pkg) if err != nil { return err } if using != nil { fmt.Println("Currently using: ", color.CyanString(*using)) } else { fmt.Printf("Not currently using any %s version\n", color.CyanString(pkg)) } var pkgVersions []string for _, entry := range dirEntries { if entry.IsDir() { pkgVersions = append(pkgVersions, entry.Name()) } } var pkgVerStems []string if len(pkgVersions) == 1 { pkgVerStems = append(pkgVerStems, pkgVersions[0]) } else { surveyPrompt := &survey.MultiSelect{ Message: "Select " + color.CyanString(pkg) + " version to " + color.RedString("remove") + ":", Options: pkgVersions, PageSize: 10, } err := survey.AskOne(surveyPrompt, &pkgVerStems, survey.WithValidator(survey.Required)) if err != nil { return fmt.Errorf("Prompt failed %v\n", err) } } pkgConf, err := pkgparse.ParsePkgConfigLocal(cfg.PkgRepos, pkg) if err != nil { return err } if len(pkgVerStems) == len(pkgVersions) { if _, err := RemoveAllVers(pkg, pkgConf); err != nil { return err } } else { for _, pkgVerStem := range pkgVerStems { if err = RemovePkgVer(pkgVerStem, using, pkg, pkgConf); err != nil { return err } } } fmt.Print(pkgConf.RemoveNotes()) fmt.Printf("All %d selected packages are uninstalled.\n", len(pkgVerStems)) return nil }, }
RemoveCmd represents the remove command
Functions ¶
func RemovePkgVer ¶
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.