Skip to content

Commit

Permalink
Add --all flag for remove
Browse files Browse the repository at this point in the history
  • Loading branch information
trgeiger committed Apr 21, 2024
1 parent d2ca243 commit 1d0f8bc
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 12 deletions.
17 changes: 9 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,15 @@ CLI app for managing Copr repos, written in Go.

```
Options:
enable Add or enable one or more Copr repositories.
remove Remove one or more Copr repositories.
list List Copr repositories in your repo folder.
--enabled List all enabled repositories (default).
--disabled List all disabled repositories.
--all List both disabled and enabled repositories.
disable Disable one or more Copr repositories without deleting the repository files.
help Display help text.
enable Add or enable one or more Copr repositories
remove Remove one or more Copr repositories
--all Remove all installed Copr repositories
list List Copr repositories in your repo folder
--enabled List all enabled repositories (default)
--disabled List all disabled repositories
--all List both disabled and enabled repositories
disable Disable one or more Copr repositories without deleting the repository files
help Display help text
Arguments:
[REPO(s)...] One or more repository names formatted as `author/repo`
Expand Down
37 changes: 33 additions & 4 deletions cmd/remove.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,40 @@ import (
"github.com/trgeiger/cpm/internal/app"
)

var (
deleteAll bool
)

func NewRemoveCmd(fs afero.Fs, out io.Writer) *cobra.Command {
return &cobra.Command{
cmd := &cobra.Command{
Use: "remove",
Aliases: []string{"delete"},
Args: cobra.MinimumNArgs(1),
Short: "Uninstall one or more Copr repositories.",
Args: func(cmd *cobra.Command, args []string) error {
if deleteAll {
if err := cobra.NoArgs(cmd, args); err != nil {
return err
}
} else {
if err := cobra.MinimumNArgs(1)(cmd, args); err != nil {
return err
}
}
return nil
},
Short: "Uninstall one or more Copr repositories.",
Run: func(cmd *cobra.Command, args []string) {
for _, arg := range args {
var repos []string
if deleteAll {
erepos, _ := app.GetReposList(fs, out, app.Enabled)
drepos, _ := app.GetReposList(fs, out, app.Disabled)
erepos = append(erepos, drepos...)
for _, r := range erepos {
repos = append(repos, r.Name())
}
} else {
repos = args
}
for _, arg := range repos {
repo, err := app.NewCoprRepo(arg)
if err != nil {
fmt.Fprintln(out, err)
Expand All @@ -32,4 +58,7 @@ func NewRemoveCmd(fs afero.Fs, out io.Writer) *cobra.Command {
}
},
}
cmd.Flags().BoolVarP(&deleteAll, "all", "A", false, "delete all installed Copr repositories")

return cmd
}

0 comments on commit 1d0f8bc

Please sign in to comment.