diff options
Diffstat (limited to 'srv/cmd/mailinglist-cli')
-rw-r--r-- | srv/cmd/mailinglist-cli/main.go | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/srv/cmd/mailinglist-cli/main.go b/srv/cmd/mailinglist-cli/main.go index ca4ccd6..4ae47fe 100644 --- a/srv/cmd/mailinglist-cli/main.go +++ b/srv/cmd/mailinglist-cli/main.go @@ -68,14 +68,10 @@ func main() { ml := mailinglist.New(mlParams) _ = ml - args := cfg.Args() - if len(args) == 0 { - args = append(args, "") - } - - action, args := args[0], args[1:] + subCmd := cfg.SubCmd() + ctx = mctx.Annotate(ctx, "subCmd", subCmd) - switch action { + switch subCmd { case "list": for it := mlStore.GetAll(); ; { email, err := it() @@ -94,7 +90,25 @@ func main() { logger.Info(ctx, "next") } + case "publish": + + title := cfg.String("title", "", "Title of the post which was published") + url := cfg.String("url", "", "URL of the post which was published") + cfg.Init(ctx) + + if *title == "" { + logger.Fatal(ctx, "-title is required") + + } else if *url == "" { + logger.Fatal(ctx, "-url is required") + } + + err := ml.Publish(*title, *url) + if err != nil { + loggerFatalErr(ctx, logger, "publishing", err) + } + default: - logger.Fatal(ctx, "invalid action") + logger.Fatal(ctx, "invalid sub-command, must be list|publish") } } |