Reference

lx(1)

A luxurious package manager for Lua

NAME

lux-cli - A luxurious package manager for Lua

SYNOPSIS

lux-cli [--dev] [--server] [--extra-servers] [--namespace] [--lua-dir] [--lua-version] [--tree] [--cache-dir] [--no-manifest-cache] [--data-dir] [--vendor-dir] [--variables] [--profile] [--verbose] [--no-progress] [--no-prompt] [--preset] [--nvim] [--no-tfa] [--allow-root] [--timeout] [--max-jobs] [--no-luarc] [--no-wrap-bin] [--user-agent] [-h|--help] [-V|--version] <subcommands>

DESCRIPTION

A luxurious package manager for Lua

OPTIONS

--dev

Enable the sub-repositories in luarocks servers for rockspecs of in-development versions

--server <server>

Fetch rocks/rockspecs from this server (takes priority over config file)

--extra-servers <extra-server>

Fetch rocks/rockspecs from these servers in addition to the main server{n} (overrides any entries in the config file)

--namespace <namespace>

Specify the luarocks server namespace to use

--lua-dir <prefix>

Specify the directory in which to install Lua if not found

--lua-version <ver>

Which Lua installation to use.{n} Valid versions are: '5.1', '5.2', '5.3', '5.4', '5.5', 'jit' and 'jit52'.{n} If not set, Lux will attempt to detect the Lua version:{n} - From the current project, if it has an exact Lua version requirement.{n} - From the Lua installation that is available on the PATH

--tree <tree>

Which tree to operate on.{n} In a workspace, this can be used to specify a detached workspace tree

--cache-dir <cache-dir>

Specifies the cache directory, e.g. for luarocks manifests

--no-manifest-cache

Disable the precomputed manifest cache

--data-dir <data-dir>

Specifies the data directory,{n} in which the default user install tree resides{n} (e.g. ~/.local/share/lux)

--vendor-dir <vendor-dir>

Specifies a directory with locally vendored sources and RockSpecs.{n} When building or installing a package with this flag,{n} Lux will fetch sources from the <vendor-dir> instead of from a remote server

--variables <variable>

Override config variables.{n} Example: `lx -v "LUA=/path/to/lua" ...`

--profile <profile>

The build profile to use when compiling packages.{n} Default: `release`

Possible values:

•

release

•

dev

--verbose

Display verbose output of commands executed, enabling DEBUG logs.{n} To enable TRACE logs, set RUST_LOG=trace

--no-progress

Don't print any progress bars or spinners

--no-prompt <NO_PROMPT>

Skip prompts, selecting the default option.{n} Prompting is enabled by default in terminal/TTY environments

Possible values:

•

true

•

false

--preset <preset>

Configure Lux for a specific environment.{n} Valid presets are: 'nvim', 'rojo'

Possible values:

•

nvim: Configure Lux for [Neovim](https://neovim.io/) plugins

•

rojo: Configure Lux for [Rojo](https://rojo.space/)

--nvim

[DEPRECATED] Configure lux for installing Neovim packages.{n} Use `--preset nvim` instead

--no-tfa

Disable prompts for two-factor authentication (2FA) codes.{n} It is strongly recommended to enable 2FA instead see (https://luarocks.org/settings/two-factor-auth)

--allow-root

Allow Lux to run as root (linux) or Administrator (windows)

--timeout <seconds>

Timeout on network operations, in seconds.{n} 0 means no timeout (wait forever). Default is 30

--max-jobs <MAX_JOBS>

Maximum buffer size for parallel jobs, such as downloading rockspecs and installing rocks. 0 means no limit. Default is 0

--no-luarc

Do not generate or update a `.luarc.json` file when building{n} a project

--no-wrap-bin

Do not wrap Lua `bin` scripts

--user-agent <USER_AGENT>

The user agent to set when making web requests. Default is "lux/<version>"

-h, --help

Print help (see a summary with '-h')

-V, --version

Print version

SUBCOMMANDS

lux-cli-add(1)

Add a dependency to the current project

lux-cli-build(1)

Build/compile a project

lux-cli-check(1)

[EXPERIMENTAL]{n} Type check the current project based on EmmyLua/LuaCATS annotations.{n} Respects `.emmyrc.json` and `.luarc.json` files in the project directory

lux-cli-config(1)

Interact with the lux configuration

lux-cli-debug(1)

Internal commands for debugging Lux itself

lux-cli-dist(1)

Distribute a Lux project

lux-cli-doc(1)

Show documentation for an installed rock

lux-cli-download(1)

Download a specific rock file from a luarocks server

lux-cli-fmt(1)

Formats the codebase with stylua

lux-cli-generate-rockspec(1)

Generate a rockspec file from a project

lux-cli-generate-lockfile(1)

Generate a lockfile for the current project without installing its dependencies

lux-cli-info(1)

Show metadata for any rock

lux-cli-install(1)

Install a rock for use on the system

lux-cli-install-rockspec(1)

Install a local rockspec for use on the system

lux-cli-install-lua(1)

Manually install and manage Lua headers for various Lua versions

lux-cli-lint(1)

Lint the current project using `luacheck`

lux-cli-list(1)

List currently installed rocks

lux-cli-lua(1)

Run lua, with the `LUA_PATH` and `LUA_CPATH` set to the specified lux tree

lux-cli-new(1)

Create a new Lua project

lux-cli-outdated(1)

List outdated rocks

lux-cli-pack(1)

Create a packed rock for distribution, packing sources or binaries

lux-cli-path(1)

Return the currently configured package path

lux-cli-pin(1)

Pin an existing rock, preventing any updates to the package

lux-cli-purge(1)

Remove all installed rocks from a tree

lux-cli-remove(1)

Remove a rock from the current project's lux.toml dependencies

lux-cli-run(1)

Run the current project with the provided arguments

lux-cli-exec(1)

Execute a command that has been installed with lux. If the command is not found, a package named after the command will be installed

lux-cli-search(1)

Query the luarocks servers

lux-cli-test(1)

Run the test suite in the current project directory.{n} Lux supports the following test backends, specified by the `[test]` table in the lux.toml:{n} {n} - busted:{n} {n} https://lunarmodules.github.io/busted/{n} {n} Example:{n} {n} ```toml{n} [test]{n} type = "busted"{n} flags = [ ] # Optional CLI flags to pass to busted{n} ```{n} {n} `lx test` will default to using `busted` if no test backend is specified and:{n} * there is a `.busted` file in the project root{n} * or `busted` is one of the `test_dependencies`).{n} {n} - busted-nlua:{n}: {n} A build backend for running busted tests with Neovim as the Lua interpreter. Used for testing Neovim plugins. {n} Example:{n} {n} ```toml{n} [test]{n} type = "busted-nlua"{n} flags = [ ] # Optional CLI flags to pass to busted{n} ```{n} {n} `lx test` will default to using `busted-nlua` if no test backend is specified and:{n} * there is a `.busted` file in the project root{n} * or `busted` and `nlua` are `test_dependencies`.{n} {n} - command:{n} {n} Name/file name of a shell command that will run the test suite.{n} Example:{n} {n} ```toml{n} [test]{n} type = "command"{n} command = "make"{n} flags = [ "test" ]{n} ```{n} {n} - script:{n} {n} Relative path to a Lua script that will run the test suite.{n} Example:{n} {n} ```toml{n} [test]{n} type = "script"{n} script = "tests.lua" # Expects a tests.lua file in the project root{n} flags = [ ] # Optional arguments passed to the test script{n} ```{n}

lux-cli-uninstall(1)

Uninstall a rock from the system

lux-cli-unpin(1)

Unpins an existing rock, allowing updates to alter the package

lux-cli-update(1)

Updates all rocks in a project

lux-cli-upload(1)

Generate a Lua rockspec for a Lux project and upload it to the public luarocks repository.{n} You can specify a source template for release and dev packages in the lux.toml.{n} {n} Example:{n} {n} ```toml{n} [source]{n} url = "https://host.com/owner/$(PACKAGE)/refs/tags/$(REF).zip"{n} dev = "git+https://host.com/owner/$(PACKAGE).git"{n} ```{n} {n} You can use the following variables in the source template:{n} {n} - $(PACKAGE): The package name.{n} - $(VERSION): The package version.{n} - $(REF): The git tag or revision (if in a git repository).{n} - You may also specify environment variables with `$(<VAR_NAME>)`.{n} {n} If the `version` is not set in the lux.toml, lux will search the current commit for SemVer tags and if found, will use it to generate the package version

lux-cli-util(1)

Infrequently used commands such as for generating shell completions and man pages

lux-cli-vendor(1)

Vendor the dependencies of a project or RockSpec locally. When building or installing a package with the `--vendor-dir` option{n} or the `[vendor_dir]` config option, Lux will fetch sources from the <vendor-dir>{n} instead of from a remote server

lux-cli-which(1)

Tell which file corresponds to a given module name

lux-cli-shell(1)

Spawns an interactive shell with PATH, LUA_PATH, LUA_CPATH and LUA_INIT set

lux-cli-sync(1)

Synchronize the project tree with the current lux.toml,{n} ensuring all packages are installed correctly

lux-cli-help(1)

Print this message or the help of the given subcommand(s)

VERSION

v0.52.2

AUTHORS

vhyrro <[email protected]>, mrcjkb <[email protected]>