id = "bmon"
name = "bmon"
homepage = "https://github.com/tgraf/bmon"
description = "Interface bandwidth monitor"
executables = ["bmon"]
platforms = ["macos", "linux"]
[dotfiles]
paths = ["~/.bmonrc"]
secret = []
[commands]
format = 1
label = "Monitor bandwidth"
description = "Start bmon with common display, interval and module options. Module-specific settings go inside the input/output module strings."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false }
[[commands.source]]
id = "man"
kind = "manual"
url = "https://manpages.debian.org/bookworm/bmon/bmon.8.en.html"
revision = "bookworm"
evidence = """
-i, --input=MODULE[:OPTIONS][,MODULE...]
-o, --outputMODULE[:OPTIONS][,MODULE...]
-U, --use-si
-f, --configfile=FILE
-p, --policy=POLICY
-r, --read-interval=FLOAT
-R, --rate-interval=FLOAT
-b, --use-bit
-L, --lifetime=FLOAT
"""
[[commands.field]]
id = "policy"
label = "Interface policy"
description = "Which interfaces to show, for example a comma-separated list of names."
type = "string"
option = ["--policy", "-p"]
sources = ["man"]
[[commands.field]]
id = "use_bit"
label = "Show bits per second"
type = "boolean"
option = ["--use-bit", "-b"]
sources = ["man"]
[[commands.field]]
id = "use_si"
label = "Use SI units (1 KB = 1000 bytes)"
type = "boolean"
option = ["--use-si", "-U"]
sources = ["man"]
[[commands.field]]
id = "read_interval"
label = "Read interval (seconds)"
type = "number"
option = ["--read-interval", "-r"]
sources = ["man"]
[[commands.field]]
id = "rate_interval"
label = "Rate interval (seconds)"
type = "number"
option = ["--rate-interval", "-R"]
sources = ["man"]
[[commands.field]]
id = "lifetime"
label = "Element lifetime (seconds)"
type = "number"
option = ["--lifetime", "-L"]
sources = ["man"]
[[commands.field]]
id = "input"
label = "Input modules"
type = "string"
option = ["--input", "-i"]
suggestions = [{ value = "netlink", label = "netlink" }, { value = "proc", label = "proc" }]
sources = ["man"]
[[commands.field]]
id = "output"
label = "Output modules"
type = "string"
option = ["-o"]
suggestions = [{ value = "curses", label = "curses" }, { value = "ascii", label = "ascii" }]
sources = ["man"]
[[commands.field]]
id = "configfile"
label = "Config file"
type = "path"
option = ["--configfile", "-f"]
path = { kind = "file", role = "input" }
sources = ["man"]
[[commands.task]]
id = "monitor"
label = "Monitor in bits per second"
fields = ["policy", "use_bit", "read_interval"]
set = { use_bit = [true] }
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["policy", "use_bit", "use_si", "read_interval"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["rate_interval", "lifetime", "input", "output", "configfile"]