summaryrefslogtreecommitdiff
path: root/flags.go
blob: 7f28bed63442ee14c3899ff0983b209a61019379 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// 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"},
	{"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.`,
	)
)