From f4e584938b5bc25da695b0b35688e23917c40897 Mon Sep 17 00:00:00 2001 From: Stian Fredrik Aune Date: Sat, 8 Jan 2022 21:02:35 +0100 Subject: [PATCH] enable 'lucy handler delete all' --- cmd/lucy/handlercmd.go | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/cmd/lucy/handlercmd.go b/cmd/lucy/handlercmd.go index 99c0146..3f615fb 100644 --- a/cmd/lucy/handlercmd.go +++ b/cmd/lucy/handlercmd.go @@ -76,17 +76,33 @@ func handlerCmd( WriteHandlerInfoTable(os.Stdout, []models.EventHandler{*returned}) case "delete": - id := cmd.Params.Get(0).Int() - if id == nil { - log.Fatalln("ID missing") - } + if cmd.Params.Get(0).StringOr("_not") == "all" { + handlers, err := c.GetHandlers(ctx) + if err != nil { + log.Fatalln(err) + } - handler, err := c.DeleteHandler(ctx, *id) - if err != nil { - log.Fatalln(err) - } + for _, handler := range handlers { + _, err = c.DeleteHandler(ctx, handler.ID) + if err != nil { + log.Fatalln(err) + } + } - WriteHandlerInfoTable(os.Stdout, []models.EventHandler{*handler}) + log.Printf("Deleted %d handlers", len(handlers)) + } else { + id := cmd.Params.Get(0).Int() + if id == nil { + log.Fatalln("ID missing") + } + + handler, err := c.DeleteHandler(ctx, *id) + if err != nil { + log.Fatalln(err) + } + + WriteHandlerInfoTable(os.Stdout, []models.EventHandler{*handler}) + } default: if cmd.Name != "help" { log.Println("Unknown command:", cmd.Name)