id = "luarocks"
name = "LuaRocks"
homepage = "https://luarocks.org/"
description = "The package manager for the Lua programming language."
executables = ["luarocks"]
[dotfiles]
paths = [
"~/.config/luarocks/config-*.lua",
"~/.luarocks/config-*.lua",
]
secret = []
side_effect = false
[commands]
format = 1
label = "LuaRocks"
description = "Install or search rocks. Other luarocks commands are not covered."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false }
[[commands.subcommand]]
path = ["install"]
label = "Install a rock"
description = "Install a rock by name (optionally a version), or from a rockspec URL or file."
[[commands.subcommand.source]]
id = "doc"
kind = "manual"
url = "https://github.com/luarocks/luarocks/blob/main/docs/luarocks_install.md"
revision = "main 2026-10-27"
evidence = """
`luarocks install [--keep] [--only-deps] {<rock> | <name> [<version>]}`
Unless `--keep` is passed, other versions of the rock are removed after installing the new one.
If `--only-deps` is passed, the rock itself is not installed, but its dependencies are.
luarocks install busted --deps-mode=none
"""
[[commands.subcommand.field]]
id = "rock"
label = "Rock name, rockspec URL or file"
type = "string"
position = 0
sources = ["doc"]
[[commands.subcommand.field]]
id = "version"
label = "Version"
type = "string"
position = 1
sources = ["doc"]
[[commands.subcommand.field]]
id = "keep"
label = "Keep other versions"
type = "boolean"
option = ["--keep"]
sources = ["doc"]
[[commands.subcommand.field]]
id = "only_deps"
label = "Install only dependencies"
type = "boolean"
option = ["--only-deps"]
sources = ["doc"]
[[commands.subcommand.task]]
id = "install"
label = "Install a rock"
fields = ["rock", "version", "keep"]
required = ["rock"]
[[commands.subcommand.task]]
id = "deps"
label = "Install dependencies only"
fields = ["rock", "only_deps"]
required = ["rock", "only_deps"]
set = { only_deps = [true] }
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["rock", "version", "keep", "only_deps"]
[[commands.subcommand]]
path = ["search"]
label = "Search rocks"
description = "Query the LuaRocks servers for a rock name."
[[commands.subcommand.source]]
id = "doc"
kind = "manual"
url = "https://github.com/luarocks/luarocks/blob/main/docs/luarocks_search.md"
revision = "main 2026-10-27"
evidence = """
`luarocks search [--porcelain] [--source] [--binary] { <query> [<version>] | --all }`
If `--porcelain` is passed, machine-friendly output is produced.
If `--source` is passed, only rockspecs and source rocks are shown.
If `--binary` is passed, only binary and pure-Lua rocks are shown.
To list files for all rocks pass `--all`.
"""
[[commands.subcommand.field]]
id = "query"
label = "Name substring"
type = "string"
position = 0
sources = ["doc"]
[[commands.subcommand.field]]
id = "all"
label = "List all rocks"
type = "boolean"
option = ["--all"]
sources = ["doc"]
[[commands.subcommand.field]]
id = "source"
label = "Source rocks only"
type = "boolean"
option = ["--source"]
sources = ["doc"]
[[commands.subcommand.field]]
id = "binary"
label = "Binary rocks only"
type = "boolean"
option = ["--binary"]
sources = ["doc"]
[[commands.subcommand.field]]
id = "porcelain"
label = "Machine-friendly output"
type = "boolean"
option = ["--porcelain"]
sources = ["doc"]
[[commands.subcommand.task]]
id = "search"
label = "Search by name"
fields = ["query", "source", "binary"]
required = ["query"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["query", "all", "source", "binary", "porcelain"]