Lua environment manager
Project description
(🌑) luamb
Lua environment manager built on top of hererocks and inspired by virtualenvwrapper.
Supported shells
- Bash
- Zsh
Installation
-
Install
luamb
usingpip
(hererocks
will be installed automatically):pip install [--user] luamb
-
Create a directory for environments:
mkdir $HOME/.luambenvs
-
Configure your shell (add these lines to
~/.bashrc
or~/.zshrc
):# path to the directory with environments export LUAMB_DIR=$HOME/.luambenvs # optional variables: export LUAMB_LUA_DEFAULT='lua 5.3' # default Lua version export LUAMB_LUAROCKS_DEFAULT=latest # default LuaRocks version LUAMB_DISABLE_COMPLETION=true # disable shell completions LUAMB_PYTHON_BIN=/usr/bin/python3 # explicitly set Python executable # make some magic source <(luamb shellsrc) # or if luamb executable is not in PATH: source <("$LUAMB_PYTHON_BIN" -m luamb shellsrc)
-
Try to execute in a new shell:
luamb --help
Examples
-
Create an environment 'myproject' with the latest Lua 5.2 (5.2.4), 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 (2.0.5) and the latest LuaRocks version by default:
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 (LuaJIT 2.0.5) 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
Each command has one or more aliases.
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 environments
Version history
0.4.0 (2020-06-27)
BREAKING CHANGES
-
Remove version parsing magic
luamb mk
now accepts the same version specifiers ashererocks
.lua
/luajit
prefixes are not allowed anymore, use a bare version specifier (e.g.,-l 5.1
instead of-l lua5.1
).A value of the
LUAMB_LUA_DEFAULT
environment variable must conform to the following format:interpreter version_specifier
(e.g.,lua 5.3
,luajit latest
,moonjit 2.2
,raptorjit repo@tag
,lua /path/to
).A value of the
LUAMB_LUAROCKS_DEFAULT
environment variable must contain only a version specifier (e.g.,3.3.0
,2.1
,latest
,repo@tag
,/path/to
), therocks
/luarocks
prefix is not allowed anymore. -
Move shell code to a Python module
The code can now be retrieved with the
luamb shellsrc
command. Usesource <(luamb shellsrc)
to load theluamb
function into the current shell. -
Enable shell completion by default
Set the
LUAMB_DISABLE_COMPLETION
environment variable totrue
to disable the completion. TheLUAMB_COMPLETION
environment variable was removed.
Added
- Add support for RaptorJIT and moonjit
- Add
--list-versions
flag tomk
command - Add
--short
flag tols
command
0.3.0 (2018-07-24)
- Add git URIs and local paths support
- Add hererocks non-zero status handling
- Wrap hererocks deactivate-lua function to deactivate environment properly
- Add some new aliases
0.2.1 (2018-03-25)
Bugfix release
0.2.0 (2017-08-29)
Zsh support
0.1.2 (2016-08-24)
OS X support (using greadlink
)
0.1.1 (2016-07-23)
Bash completion
0.1.0 (2016-07-20)
Initial release
License
The MIT License.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for luamb-0.4.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28a5599d4c97688bf95798541a1cfa8441eaf71a1e1527bc9c4dd21200432d5a |
|
MD5 | 423ee7706507b2921ab5e7f054b08a8d |
|
BLAKE2b-256 | 08e457cb06a3c747cc36b7e8b24c2f8015a2748dd3da15588ba6c2fbd7dacee4 |