lux-cli-upload(1)
π lux-cli-upload(1) β General Commands Manual π
okay bestie, get comfy, because we're about to look at lux-cli-upload from the lux-cli manual β¨ this one's all about generating a Lua rockspec for a Lux project and yeeting it up to the public luarocks repository π
β¨ NAME β¨
lux-cli-upload β generate a Lua rockspec for a Lux project and upload it to the public luarocks repository π
fr fr, you can specify a source template for release and dev packages in the lux.toml, and it's giving very configurable, very iconic π
Example, because examples eat every time:
[source]
url = "https://host.com/owner/$(PACKAGE)/refs/tags/$(REF).zip"
dev = "git+https://host.com/owner/$(PACKAGE).git"
and you can use the following variables in the source template, no cap π«Ά
$(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>).
one more thing π 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 πΈ
π SYNOPSIS π
lux-cli upload [--sign-protocol] [-p|--package] [--server]
[--extra-servers] [-t|--tfa-code] [--namespace] [--lua-dir]
[--lua-version] [--tree] [--cache-dir] [--data-dir] [--variables]
[--profile] [--verbose] [--no-progress] [--no-prompt] [--preset]
[--nvim] [--no-tfa] [--timeout] [--max-jobs] [--no-luarc]
[--no-wrap-bin] [--user-agent] [-h|--help]
π¦ DESCRIPTION π¦
so, what does it do? it generates a Lua rockspec for a Lux project and uploads it to the public luarocks repository π«
you can specify a source template for release and dev packages in the lux.toml β same energy as before, and yes, she's repeating herself because it's important π
Example time:
[source]
url = "https://host.com/owner/$(PACKAGE)/refs/tags/$(REF).zip"
dev = "git+https://host.com/owner/$(PACKAGE).git"
the variables you can use in the source template, gather round π§
$(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>).
and 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 β
π OPTIONS π
okay this is the part everyone actually scrolled for, let's go π₯
--sign-protocol <SIGN_PROTOCOL>β The protocol to use when signing upload artefacts. [default:default]
Possible values, bestie:
noneassuancmsdefaultg13gpgconfopenpgpspawnuiserver
-p,--package <PACKAGE>β Package to upload π¦--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 (overrides any entries in the config file)-t,--tfa-code <TFA_CODE>β Code to use for two-factor authentication (2FA). It is recommended to enable 2FA for luarocks uploads (see https://luarocks.org/settings/two-factor-auth). Lux can also generate a TOTP code if you expose your luarocks.org 2FA secret via theLUAROCKS_2FA_SECRETenvironment variable. π--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. Valid versions are:'5.1','5.2','5.3','5.4','5.5','jit'and'jit52'. If 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, this can be used 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)--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:
releasedev
--verboseβ Display verbose output of commands executed, enablingDEBUGlogs. To enableTRACElogs, setRUST_LOG=traceπ--no-progressβ Don't print any progress bars or spinners π--no-prompt <NO_PROMPT>β Skip prompts, selecting the default option. Prompting is enabled by default in terminal/TTY environments
Possible values:
truefalse
--preset <preset>β Configure Lux for a specific environment. Valid presets are:'nvim'
Possible values:
nvim: Configure Lux for Neovim plugins
--nvimβ[DEPRECATED]Configure lux for installing Neovim packages. Use--preset nviminstead
bestie this one's deprecated π please use --preset nvim instead, she's the upgrade
--no-tfaβ Disable prompts for two-factor authentication (2FA) codes. It is strongly recommended to enable 2FA instead see (https://luarocks.org/settings/two-factor-auth)
ngl, turning 2FA off is not the vibe β strongly recommended to keep it ON π₯
--timeout <seconds>β Timeout on network operations, in seconds.0means no timeout (wait forever). Default is30β³--max-jobs <MAX_JOBS>β Maximum buffer size for parallel jobs, such as downloading rockspecs and installing rocks.0means no limit. Default is0--no-luarcβ Do not generate or update a.luarc.jsonfile when building a project--no-wrap-binβ Do not wrap Luabinscripts--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') π«Ά
and that's the whole page, babes π this was upload from lux-cli-upload(1) β go forth and upload something iconic πβ¨
π¦ where this page comes from
- nixpkgs unstable: lux-cli 0.48.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms