id = "gnunet" name = "GNUnet" homepage = "https://www.gnunet.org/" description = "GNUnet is a network protocol stack for building secure, distributed, and privacy-preserving applications." executables = ["gnunet-arm", "gnunet-config", "gnunet-setup"] platforms = ["macos", "linux"] [dotfiles] # The GNUnet handbook says a user configuration can be named gnunet.conf and # placed under $HOME/.config; its installation guide likewise tells users to # create ~/.config/gnunet.conf for user services. This is a literal documented # path rather than [configHome], because the handbook spells out $HOME/.config. # https://git.gnunet.org/gnunet/gnunet-handbook/file/users/configuration.rst.html # https://docs.gnunet.org/master/installing.html paths = ["~/.config/gnunet.conf"] exclude = [] secret = [] side_effect = false [commands] format = 1 label = "Control GNUnet services (gnunet-arm)" description = "Start, stop or inspect GNUnet services through the ARM supervisor. Timeout and output-inheritance options are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = true } [[commands.source]] id = "man" kind = "manual" url = "https://manpages.debian.org/unstable/gnunet/gnunet-arm.1.en.html" revision = "0.20.0-9" evidence = """ -c FILENAME | --config=FILENAME Use the configuration file FILENAME. -e | --end Shutdown all GNUnet services (including ARM itself). -i SERVICE | --init=SERVICE Starts the specified SERVICE if it is not already running. -I | --info List all running services. -k SERVICE | --kill=SERVICE Stop SERVICE if it is running. -L LOGLEVEL | --loglevel=LOGLEVEL Use LOGLEVEL for logging. Valid values are DEBUG, INFO, WARNING and ERROR. -l FILENAME | --logfile=FILENAME Write logs to FILENAME. -m | --monitor Monitor service activity of ARM. -q | --quiet Don't print status messages. -r | --restart Stop and start all GNUnet default services. -s | --start Start all GNUnet default services on this system (and also ARM). """ [[commands.field]] id = "start" label = "Start default services" type = "boolean" option = ["--start", "-s"] sources = ["man"] [[commands.field]] id = "end" label = "Shut down all services" type = "boolean" option = ["--end", "-e"] sources = ["man"] [[commands.field]] id = "restart" label = "Restart default services" type = "boolean" option = ["--restart", "-r"] sources = ["man"] [[commands.field]] id = "info" label = "List running services" type = "boolean" option = ["--info", "-I"] sources = ["man"] [[commands.field]] id = "monitor" label = "Monitor ARM activity" type = "boolean" option = ["--monitor", "-m"] sources = ["man"] [[commands.field]] id = "init" label = "Start one service" type = "string" option = ["--init", "-i"] sources = ["man"] [[commands.field]] id = "kill" label = "Stop one service" type = "string" option = ["--kill", "-k"] sources = ["man"] [[commands.field]] id = "config" label = "Config file" type = "path" option = ["--config", "-c"] path = { kind = "file", role = "input", must_exist = true } sources = ["man"] [[commands.field]] id = "loglevel" label = "Log level" type = "enum" option = ["--loglevel", "-L"] choices = [{ value = "DEBUG", label = "Debug" }, { value = "INFO", label = "Info" }, { value = "WARNING", label = "Warning" }, { value = "ERROR", label = "Error" }] sources = ["man"] [[commands.field]] id = "logfile" label = "Log file" type = "path" option = ["--logfile", "-l"] path = { kind = "file", role = "output", must_exist = false } effect = "overwrite" sources = ["man"] [[commands.field]] id = "quiet" label = "Quiet" type = "boolean" option = ["--quiet", "-q"] sources = ["man"] [[commands.task]] id = "start" label = "Start the peer" set = { start = [true] } lock = ["start"] fields = ["start", "config", "quiet"] required = [] [[commands.task]] id = "stop" label = "Stop the peer" set = { end = [true] } lock = ["end"] fields = ["end", "config", "quiet"] required = [] [[commands.task]] id = "status" label = "List running services" set = { info = [true] } lock = ["info"] fields = ["info", "config"] required = [] [[commands.group]] id = "basic" label = "Basic" fields = ["start", "end", "restart", "info", "init", "kill", "config"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["monitor", "loglevel", "logfile", "quiet"]