luamb
luamb copied to clipboard
Lua environment manager
(🌑) luamb
Lua environment manager built on top of hererocks and inspired by virtualenvwrapper.
Supported shells
- Bash
- Zsh
Installation
-
Install luamb using
pip:pip install [--user] luambor
pipx:pipx install luamb -
Set up your shell — add the following to
~/.bashrcor~/.zshrc:source <(luamb shellsrc) -
Install hererocks:
luamb update
Configuration
luamb is configured via environment variables.
-
LUAMB_HOMEA directory where luamb stores its data (hererocks, environments, etc.). The default value is
$XDG_DATA_HOME/luamb(usually~/.local/share/luamb) on Linux and~/Library/Application Support/luambon macOS. -
LUAMB_ENVS_DIRA directory where luamb stores environments. The default value is
$LUAMB_HOME/envs. -
LUAMB_LUA_DEFAULTA default Lua interpreter/version. The format is
interpreter version_specifier, e.g.,lua 5.3,luajit @v2.1,moonjit /path/to,raptorjit latest. -
LUAMB_LUAROCKS_DEFAULTA default LuaRocks version, e.g,
latest,3.11.0. -
LUAMB_DISABLE_COMPLETIONSet to
trueto disable shell completions. -
LUAMB_PYTHON_BINIf the luamb executable is not in
PATH, setLUAMB_PYTHON_BINto the Python executable with theluambpackage installed and change the shell initialization command:export LUAMB_PYTHON_BIN=/path/to/bin/python source <("$LUAMB_PYTHON_BIN" -m luamb shellsrc)
Examples
-
Create an environment 'myproject' with the latest Lua 5.2, the latest LuaRocks and associate it with /home/user/projects/myproject:
luamb mk myproject -l 5.2 -r latest -a /home/user/projects/myproject -
Create an environment 'jittest' with LuaJIT 2.0.4, without LuaRocks and associate it with /home/user/projects/jitproj:
luamb mk jittest -j 2.0.4 -a /home/user/projects/jitproj -
Set the latest LuaJIT 2.0 and the latest LuaRocks as default versions:
export LUAMB_LUA_DEFAULT='luajit 2.0' export LUAMB_LUAROCKS_DEFAULT=latest -
Create an environment 'newenv' with the default versions and without associated project directory:
luamb mk newenv -
Create an environment 'norocks' with the default Lua version and without LuaRocks (verbose mode):
luamb mk norocks --no-luarocks --verbose -
Activate the 'newenv' environment:
luamb on newenv -
Deactivate the current environment:
luamb off -
Delete the 'myproject' environment (it will remove the environment directory only, not the project one):
luamb rm myproject
Commands
on|enable|activate— activate an environmentoff|disable|deactivate— deactivate the current environmentmk|new|create— create a new environmentrm|remove|del|delete— remove an environmentinfo|show— Show the details for a single virtualenvls|list— list all of the environmentsupdate— install/update thehererocksscriptshellsrc— print the shell initialization code
Version history
See CHANGELOG.md.
License
The MIT License.