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]
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"]