53 lines
1.5 KiB
Go
53 lines
1.5 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"},
|
|
{"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),
|
|
"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.`,
|
|
)
|
|
|
|
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.`,
|
|
)
|
|
)
|