From 91e663c0f0ec4e1e61a2493f6ab08850cd2e5a2e Mon Sep 17 00:00:00 2001 From: nytpu Date: Tue, 16 Mar 2021 10:20:31 -0600 Subject: add command parsing --- flags.go | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 flags.go (limited to 'flags.go') diff --git a/flags.go b/flags.go new file mode 100644 index 0000000..7f28bed --- /dev/null +++ b/flags.go @@ -0,0 +1,49 @@ +// Copyright (C) 2021 nytpu +// SPDX-License-Identifier: AGPL-3.0-or-later +// For more license details, see LICENSE or . + +package main + +import flag "github.com/spf13/pflag" + +// globalFs contains the flags that are used in every command. +var ( + globalFs = flag.NewFlagSet("global", flag.ContinueOnError) + + dataFlag = globalFs.StringP("data", "d", "", "The data directory where comitium will store its files") +) + +// command holds fields used for printing information about a command. +type command struct { + Name string + Usage string +} + +// info about all the accepted commands +var commandInfo = []command{ + {"refresh", "Check for new updates to subscriptions"}, + {"list", "List all subscriptions"}, + {"add", "Add a new subscription"}, + {"remove", "Remove a subscription"}, + {"help", "Print usage information"}, + {"version", "Print version information"}, +} + +var commands = map[string]*flag.FlagSet{ + "refresh": flag.NewFlagSet("refresh", flag.ExitOnError), + "list": flag.NewFlagSet("list", flag.ExitOnError), + "add": flag.NewFlagSet("add", flag.ExitOnError), + "remove": flag.NewFlagSet("remove", flag.ExitOnError), +} + +// set up various flags for each individual command +var ( + // add + addTypeFlag = commands["add"].StringP( + "type", "t", // long and shorthand flag + "g", // default + `Select which type a subscription is. Can be "g" for a +Gemini feed; "a" for Atom, RSS, & JSON; or "c" to watch +the page for changes.`, + ) +) -- cgit v1.2.3