luamb

Lua environment manager


Keywords
environment-manager, hererocks, lua, version-manager, virtualenvwrapper
License
MIT
Install
pip install luamb==0.4.0

Documentation

(🌑) luamb

Lua environment manager built on top of hererocks and inspired by virtualenvwrapper.

Supported shells

  • Bash
  • Zsh

Installation

  1. Install luamb using pip:

    pip install [--user] luamb

    or pipx:

    pipx install luamb
  2. Set up your shell — add the following to ~/.bashrc or ~/.zshrc:

    source <(luamb shellsrc)
  3. Install hererocks:

    luamb update

Configuration

luamb is configured via environment variables.

  • LUAMB_HOME

    A 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/luamb on macOS.

  • LUAMB_ENVS_DIR

    A directory where luamb stores environments. The default value is $LUAMB_HOME/envs.

  • LUAMB_LUA_DEFAULT

    A 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_DEFAULT

    A default LuaRocks version, e.g, latest, 3.11.0.

  • LUAMB_DISABLE_COMPLETION

    Set to true to disable shell completions.

  • LUAMB_PYTHON_BIN

    If the luamb executable is not in PATH, set LUAMB_PYTHON_BIN to the Python executable with the luamb package 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 environment
  • off | disable | deactivate — deactivate the current environment
  • mk | new | create — create a new environment
  • rm | remove | del | delete — remove an environment
  • info | show — Show the details for a single virtualenv
  • ls | list — list all of the environments
  • update — install/update the hererocks script
  • shellsrc — print the shell initialization code

Version history

See CHANGELOG.md.

License

The MIT License.