Skip to content

Commit

Permalink
Allow cscli remove to remove with --all (crowdsecurity#1360)
Browse files Browse the repository at this point in the history
  • Loading branch information
AlteredCoder authored Mar 16, 2022
1 parent 42a1bc0 commit 24797c1
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 29 deletions.
32 changes: 18 additions & 14 deletions cmd/crowdsec-cli/collections.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,26 +67,30 @@ func NewCollectionsCmd() *cobra.Command {
Short: "Remove given collection(s)",
Long: `Remove given collection(s) from hub`,
Example: `cscli collections remove crowdsec/xxx crowdsec/xyz`,
Args: cobra.MinimumNArgs(1),
DisableAutoGenTag: true,
Run: func(cmd *cobra.Command, args []string) {
if all {
RemoveMany(cwhub.COLLECTIONS, "")
} else {
for _, name := range args {
if !forceAction {
item := cwhub.GetItem(cwhub.COLLECTIONS, name)
if item == nil {
log.Fatalf("unable to retrieve: %s\n", name)
}
if len(item.BelongsToCollections) > 0 {
log.Warningf("%s belongs to other collections :\n%s\n", name, item.BelongsToCollections)
log.Printf("Run 'sudo cscli collections remove %s --force' if you want to force remove this sub collection\n", name)
continue
}
return
}

if len(args) == 0 {
log.Fatalf("Specify at least one collection to remove or '--all' flag.")
}

for _, name := range args {
if !forceAction {
item := cwhub.GetItem(cwhub.COLLECTIONS, name)
if item == nil {
log.Fatalf("unable to retrieve: %s\n", name)
}
if len(item.BelongsToCollections) > 0 {
log.Warningf("%s belongs to other collections :\n%s\n", name, item.BelongsToCollections)
log.Printf("Run 'sudo cscli collections remove %s --force' if you want to force remove this sub collection\n", name)
continue
}
RemoveMany(cwhub.COLLECTIONS, name)
}
RemoveMany(cwhub.COLLECTIONS, name)
}
},
}
Expand Down
14 changes: 9 additions & 5 deletions cmd/crowdsec-cli/parsers.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,15 +70,19 @@ cscli parsers remove crowdsecurity/sshd-logs
Short: "Remove given parser(s)",
Long: `Remove given parse(s) from hub`,
Example: `cscli parsers remove crowdsec/xxx crowdsec/xyz`,
Args: cobra.MinimumNArgs(1),
DisableAutoGenTag: true,
Run: func(cmd *cobra.Command, args []string) {
if all {
RemoveMany(cwhub.PARSERS, "")
} else {
for _, name := range args {
RemoveMany(cwhub.PARSERS, name)
}
return
}

if len(args) == 0 {
log.Fatalf("Specify at least one parser to remove or '--all' flag.")
}

for _, name := range args {
RemoveMany(cwhub.PARSERS, name)
}
},
}
Expand Down
14 changes: 9 additions & 5 deletions cmd/crowdsec-cli/postoverflows.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,14 +70,18 @@ func NewPostOverflowsCmd() *cobra.Command {
Long: `remove given postoverflow(s)`,
Example: `cscli postoverflows remove crowdsec/xxx crowdsec/xyz`,
DisableAutoGenTag: true,
Args: cobra.MinimumNArgs(1),
Run: func(cmd *cobra.Command, args []string) {
if all {
RemoveMany(cwhub.PARSERS_OVFLW, "")
} else {
for _, name := range args {
RemoveMany(cwhub.PARSERS_OVFLW, name)
}
return
}

if len(args) == 0 {
log.Fatalf("Specify at least one postoverflow to remove or '--all' flag.")
}

for _, name := range args {
RemoveMany(cwhub.PARSERS_OVFLW, name)
}
},
}
Expand Down
14 changes: 9 additions & 5 deletions cmd/crowdsec-cli/scenarios.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,15 +70,19 @@ cscli scenarios remove crowdsecurity/ssh-bf
Short: "Remove given scenario(s)",
Long: `remove given scenario(s)`,
Example: `cscli scenarios remove crowdsec/xxx crowdsec/xyz`,
Args: cobra.MinimumNArgs(1),
DisableAutoGenTag: true,
Run: func(cmd *cobra.Command, args []string) {
if all {
RemoveMany(cwhub.SCENARIOS, "")
} else {
for _, name := range args {
RemoveMany(cwhub.SCENARIOS, name)
}
return
}

if len(args) == 0 {
log.Fatalf("Specify at least one scenario to remove or '--all' flag.")
}

for _, name := range args {
RemoveMany(cwhub.SCENARIOS, name)
}
},
}
Expand Down

0 comments on commit 24797c1

Please sign in to comment.