lux-cli(1)

πŸ’… lux-cli(1) β€” the manual page, but make it group chat

okay so bestie, this is lux-cli from the General Commands Manual, and it's a luxurious package manager for Lua. Yes, luxurious. Like it has a skincare routine and a standing appointment. Let's get into it ✨


🌸 NAME 🌸

lux-cli β€” a luxurious package manager for Lua 🫢


πŸ¦‹ SYNOPSIS πŸ¦‹

lux-cli [--dev] [--server] [--extra-servers] [--namespace] [--lua-dir]
[--lua-version] [--tree] [--cache-dir] [--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>

like yes, it's a lot of flags, it's giving main character energy, we respect it πŸ’…


πŸŽ€ DESCRIPTION πŸŽ€

A luxurious package manager for Lua. That's the whole vibe. No cap 🌈


πŸ‘‘ OPTIONS πŸ‘‘

  • --dev β€” turns on the sub-repositories in luarocks servers, so you can pull rockspecs for in-development versions. living on the edge, love that for you πŸ”₯
  • --server <server> β€” fetch rocks/rockspecs from this server instead (it takes priority over the config file).
  • --extra-servers <extra-server> β€” fetch rocks/rockspecs from these servers in addition to the main server (overrides any entries in the config file). more servers = more friends πŸ’–
  • --namespace <namespace> β€” specify the luarocks server namespace to use.
  • --lua-dir <prefix> β€” specify the directory in which to install Lua if it's not found.
  • --lua-version <ver> β€” which Lua installation to use. Valid versions are: '5.1', '5.2', '5.3', '5.4', '5.5', 'jit' and 'jit52'. If it's not set, Lux will attempt to detect the Lua version:
    • from the current project, if it has an exact Lua version requirement
    • from the Lua installation that is available on the PATH
  • --tree <tree> β€” which tree to operate on. In a workspace, you can use this to specify a detached workspace tree.
  • --cache-dir <cache-dir> β€” specifies the cache directory, e.g. for luarocks manifests.
  • --data-dir <data-dir> β€” specifies the data directory, in which the default user install tree resides (e.g. ~/.local/share/lux).
  • --vendor-dir <vendor-dir> β€” specifies a directory with locally vendored sources and RockSpecs. When building or installing a package with this flag, Lux will fetch sources from the <vendor-dir> instead of from a remote server. supporting local businesses fr fr πŸ“
  • --variables <variable> β€” override config variables. Example: lx -v "LUA=/path/to/lua" ...
  • --profile <profile> β€” the build profile to use when compiling packages. Default: release. Possible values:
    • release
    • dev
  • --verbose β€” display verbose output of commands executed, enabling DEBUG logs. To enable TRACE logs, set RUST_LOG=trace. she's chatty and we love her 😭
  • --no-progress β€” don't print any progress bars or spinners. minimalism <3
  • --no-prompt <NO_PROMPT> β€” skip prompts, selecting the default option. Prompting is enabled by default in terminal/TTY environments. Possible values:
    • true
    • false
  • --preset <preset> β€” configure Lux for a specific environment. Valid presets are: 'nvim', 'rojo'. Possible values:
  • --nvim β€” [DEPRECATED] configure lux for installing Neovim packages. Use --preset nvim instead.
bestie it's deprecated, please use --preset nvim, the glow-up is right there πŸ’€
turning this off is not the slay you think it is, protect your account πŸ”
  • --allow-root β€” allow Lux to run as root (linux) or Administrator (windows).
  • --timeout <seconds> β€” timeout on network operations, in seconds. 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 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 ✨

like, there are so many and honestly? iconic. pick your fighter πŸ‘‘

[test]
type = "busted"
flags = [ ] # Optional CLI flags to pass to busted

lx test will default to using busted if no test backend is specified and:

  • there is a .busted file in the project root
  • or busted is one of the test_dependencies
  • busted-nlua: a build backend for running busted tests with Neovim as the Lua interpreter. Used for testing Neovim plugins. Example:
[test]
type = "busted-nlua"
flags = [ ] # Optional CLI flags to pass to busted

lx test will default to using busted-nlua if no test backend is specified and:

  • there is a .busted file in the project root
  • or busted and nlua are test_dependencies
  • command: name/file name of a shell command that will run the test suite. Example:
[test]
type = "command"
command = "make"
flags = [ "test" ]
  • script: relative path to a Lua script that will run the test suite. Example:
[test]
type = "script"
script = "tests.lua" # Expects a tests.lua file in the project root
flags = [ ] # Optional arguments passed to the test script
  • 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. You can specify a source template for release and dev packages in the lux.toml. Example:
[source]
url = "https://host.com/owner/$(PACKAGE)/refs/tags/$(REF).zip"
dev = "git+https://host.com/owner/$(PACKAGE).git"

You can use the following variables in the source template:

  • $(PACKAGE): the package name
  • $(VERSION): the package version
  • $(REF): the git tag or revision (if in a git repository)
  • you may also specify environment variables with $(<VAR_NAME>) 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 or the [vendor_dir] config option, Lux will fetch sources from the <vendor-dir> 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, ensuring all packages are installed correctly
  • lux-cli-help(1) β€” print this message or the help of the given subcommand(s)

🌟 VERSION 🌟

v0.53.2


πŸ’œ AUTHORS πŸ’œ

vhyrro <vhyrro@gmail.com>, mrcjkb <marc@jakobi.dev> β€” absolute icons, thank you for your service 🫢


and that's the whole page bestie! lux-cli 0.53.2, page lux-cli(1) β€” go forth and manage your packages luxuriously πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from