Files
comitium/flags.go
T
2021-03-23 08:15:36 -06:00

73 lines
2.0 KiB
Go

// Copyright (C) 2021 nytpu
// SPDX-License-Identifier: AGPL-3.0-or-later
// For more license details, see LICENSE or <https://www.gnu.org/licenses/agpl-3.0.html>.
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"},
{"regenerate", "Regenerate all files generated by comitium without checking for new updates."},
{"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),
"regenerate": flag.NewFlagSet("regenerate", flag.ExitOnError),
"add": flag.NewFlagSet("add", flag.ExitOnError),
"remove": flag.NewFlagSet("remove", flag.ExitOnError),
}
// set up various flags for each individual command
var (
// add
addPageFlag = commands["add"].BoolP(
"watch", "w",
false,
`Watch a page instead of adding it as a feed.`,
)
// refresh
refreshWorkersFlag = commands["refresh"].IntP(
"num-workers", "n",
5, // 5 workers is a safe default
`Number of worker threads to use when refreshing feeds. More is faster,
but there are more concurrent outgoing requests then.`,
)
refreshTimeoutFlag = commands["refresh"].IntP(
"timeout", "t",
10,
`Set a timeout for requests, in seconds.`,
)
// remove
removeFeedsFlag = commands["remove"].BoolP(
"feeds", "f",
false,
`Remove URL from subscribed feeds.`,
)
removePagesFlag = commands["remove"].BoolP(
"pages", "p",
false,
`remove URL from subscribed pages.`,
)
)