lux-cli-upload(1)

πŸ“¦ version 0.48.0, in nixpkgs unstable

πŸ’… 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:

  • none
  • assuan
  • cms
  • default
  • g13
  • gpgconf
  • openpgp
  • spawn
  • uiserver
  • -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 the LUAROCKS_2FA_SECRET environment 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:

  • release
  • dev
  • --verbose β€” Display verbose output of commands executed, enabling DEBUG logs. 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. 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'

Possible values:

  • nvim: Configure Lux for Neovim plugins
  • --nvim β€” [DEPRECATED] Configure lux for installing Neovim packages. Use --preset nvim instead
bestie this one's deprecated πŸ’€ please use --preset nvim instead, she's the upgrade
ngl, turning 2FA off is not the vibe β€” strongly recommended to keep it ON πŸ”₯
  • --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') 🫢

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