// Copyright (C) 2021 nytpu // SPDX-License-Identifier: AGPL-3.0-only // 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") langFlag = globalFs.StringP("lang", "l", "en-US", "The language that comitium will use when outputting 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.`, ) )