Compare commits
79 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c0349eee68 | ||
|
|
edd95bc6b1 | ||
|
|
dca47dcac5 | ||
|
|
d672ccd087 | ||
|
|
acd620b247 | ||
|
|
0b33cd59fc | ||
|
|
15388ec7b4 | ||
|
|
16f9a52e6c | ||
|
|
fdd1024833 | ||
|
|
c1cbbca543 | ||
|
|
ca2fd3194c | ||
|
|
a30d0dd550 | ||
|
|
732397ef98 | ||
|
|
cc7bb37e1a | ||
|
|
095dcc9b4a | ||
|
|
68d9caef5a | ||
|
|
49b8acac6e | ||
|
|
cecb55f5ad | ||
|
|
bfd7d8efd1 | ||
|
|
cc30733d11 | ||
|
|
3f370377e7 | ||
|
|
66b2e9bc7a | ||
|
|
4ce0ab9daa | ||
|
|
a8d4e2c08d | ||
|
|
248de26b94 | ||
|
|
2d0e07cf7f | ||
|
|
46d1e02119 | ||
|
|
d18b005558 | ||
|
|
898256d5c3 | ||
|
|
0e3fc45758 | ||
|
|
7f6f5b02b5 | ||
|
|
8cc94db304 | ||
|
|
8289a5f705 | ||
|
|
c44db4fcdb | ||
|
|
3d66ed47ab | ||
|
|
a614537aad | ||
|
|
1704d44482 | ||
|
|
870b84d673 | ||
|
|
265b77f365 | ||
|
|
03cba28315 | ||
|
|
1aa8a8a028 | ||
|
|
15b8240a65 | ||
|
|
cdd9e172e3 | ||
|
|
cd483f5c91 | ||
|
|
d173a0b717 | ||
|
|
3ca0d2e863 | ||
|
|
09ea6dd2e4 | ||
|
|
6840fa3eb9 | ||
|
|
5f83340455 | ||
|
|
893ea86826 | ||
|
|
24c5bfbffd | ||
|
|
8afe784657 | ||
|
|
e89c557d23 | ||
|
|
e26ac2e05a | ||
|
|
3af691efe9 | ||
|
|
012172c020 | ||
|
|
fba0462779 | ||
|
|
88514214a1 | ||
|
|
c5d5cf1424 | ||
|
|
7afe537d52 | ||
|
|
c0ae601f3c | ||
|
|
6e7854fd05 | ||
|
|
e7d5ca4bf6 | ||
|
|
81d0094d67 | ||
|
|
1439be0036 | ||
|
|
bf1bd19713 | ||
|
|
8b8f75d14c | ||
|
|
5df72f9631 | ||
|
|
5ba64a4379 | ||
|
|
d45a05939f | ||
|
|
f45c1352f2 | ||
|
|
83ac3076b7 | ||
|
|
ac3507688a | ||
|
|
c7c37cfc4a | ||
|
|
1ec06f2499 | ||
|
|
a9b8ab94d9 | ||
|
|
7c436e7632 | ||
|
|
1839dd5cc6 | ||
|
|
fa0a6f6a53 |
10
.travis.yml
10
.travis.yml
@ -5,22 +5,18 @@ matrix:
|
||||
- os: linux
|
||||
sudo: false
|
||||
python: 2.7
|
||||
cache:
|
||||
directories: test/cache
|
||||
- os: linux
|
||||
sudo: false
|
||||
python: 3.5
|
||||
cache:
|
||||
directories: test/cache
|
||||
- os: osx
|
||||
language: generic
|
||||
|
||||
install:
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; brew install python; fi
|
||||
- pip install pyflakes pep8 coverage coveralls nose
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then sudo pip2 install pyflakes pycodestyle coverage coveralls nose --ignore-installed; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then pip install pyflakes pycodestyle coverage coveralls nose; fi
|
||||
|
||||
script:
|
||||
- pyflakes .
|
||||
- pep8 .
|
||||
- pycodestyle .
|
||||
- nosetests
|
||||
- coveralls
|
||||
|
||||
243
CHANGELOG.md
Normal file
243
CHANGELOG.md
Normal file
@ -0,0 +1,243 @@
|
||||
# Changelog
|
||||
|
||||
## 0.20.0 (2018-09-10)
|
||||
|
||||
### New features and improvements
|
||||
|
||||
* Added support for LuaRocks 3.0.0 - 3.0.2. `latest` and `^` aliases still
|
||||
point to `2.4.4`.
|
||||
* `--show` can now be used when installing programs; all programs present
|
||||
in the given location are listed after installation is complete.
|
||||
|
||||
### Fixes
|
||||
|
||||
* `package.path` for Lua 5.3+ built with hererocks now includes `./?/init.lua`,
|
||||
just as with standard Lua.
|
||||
|
||||
## 0.19.0 (2018-07-11)
|
||||
|
||||
### New features and improvements
|
||||
|
||||
* Added support for Lua 5.4.0-work1 and 5.4.0-work2.
|
||||
* Added support for Lua 5.3.5.
|
||||
* Added patches for Lua 5.3.4:
|
||||
|
||||
- `Lua crashes when building sequences with more than 2^30 elements`
|
||||
- `Table length computation overflows for sequences larger than 2^31
|
||||
elements`
|
||||
- `Memory-allocation error when resizing a table can leave it in an
|
||||
inconsistent state`
|
||||
|
||||
## 0.18.0 (2018-03-13)
|
||||
|
||||
### New features and improvements
|
||||
|
||||
* Added support for LuaRocks 2.4.4.
|
||||
* Using `3` as version when installing LuaRocks now uses master branch of the
|
||||
LuaRocks git repo instead of `luarocks-3`.
|
||||
* Added `lua_pushcclosure should not call the garbage collector when n is zero`
|
||||
patch for Lua 5.3.4.
|
||||
|
||||
## 0.17.0 (2017-09-13)
|
||||
|
||||
### New features and improvements
|
||||
|
||||
* Added support for LuaRocks 2.4.3.
|
||||
* When installing PUC-Rio Lua from a git repo or local sources, source files
|
||||
are expected to be in root directory instead of `src`. This allows one to
|
||||
install Lua from the default Lua repo at github.com/lua/lua.
|
||||
|
||||
## 0.16.0 (2017-06-10)
|
||||
|
||||
### New features and improvements
|
||||
|
||||
* Added support for LuaJIT 2.0.5 and 2.1.0-beta3.
|
||||
* Added fallback to a mirror for PUC-Rio Lua download.
|
||||
* Added `--timeout` option for downloads.
|
||||
|
||||
## 0.15.0 (2017-04-02)
|
||||
|
||||
### New features and improvements
|
||||
|
||||
* When building Lua with custom cflags, hererocks now instructs LuaRocks to use
|
||||
same flags when building C modules.
|
||||
|
||||
## 0.14.0 (2017-01-31)
|
||||
|
||||
### New features and improvements
|
||||
|
||||
* Added support for Lua 5.3.4.
|
||||
|
||||
## 0.13.1 (2017-01-09)
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fixed an error when setting up cl.exe and hererocks has been installed using
|
||||
a version of pip that passes `prefix/hererocks` instead of
|
||||
`prefix/hererocks-script.py` as `sys.argv[0]`.
|
||||
|
||||
## 0.13.0 (2016-12-22)
|
||||
|
||||
### New features and improvements
|
||||
|
||||
* Added support for LuaRocks 2.4.2.
|
||||
* LuaRocks is now configured to allow using config in user home directory.
|
||||
In particular, API keys for `luarocks upload` command are now properly cached.
|
||||
|
||||
## 0.12.0 (2016-11-04)
|
||||
|
||||
### New features and improvements
|
||||
|
||||
* Added support for LuaRocks 2.4.1.
|
||||
* Updated URL for LuaRocks downloads and default git repo.
|
||||
|
||||
## 0.11.0 (2016-09-10)
|
||||
|
||||
### New features and improvements
|
||||
|
||||
* Added support for LuaRocks 2.4.0.
|
||||
* Added two new patches for bugs in Lua 5.3.3, try `--patch`.
|
||||
* Caching of downloads now works on Unix-like systems even when `$HOME` is
|
||||
unset (#28).
|
||||
|
||||
## 0.10.0 (2016-07-14)
|
||||
|
||||
### New features and improvements
|
||||
|
||||
* hererocks now creates activation scripts a-la virtualenv in `<location>/bin`.
|
||||
Bash, Zsh, Dash, Fish, Csh, Batch, and PowerShell are supported.
|
||||
* Lua 5.3.3 can now be patched to fix a bug (`Expression list with four or more
|
||||
expressions in a 'for' loop can crash the interpreter`), try `--patch`.
|
||||
|
||||
## 0.9.0 (2016-06-21)
|
||||
|
||||
### New features and improvements
|
||||
|
||||
* Added support for LuaRocks 2.0.13.
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fixed occasional SHA256 mismatches when downloading LuaJIT (#27).
|
||||
|
||||
## 0.8.1 (2016-06-12)
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fixed error when installing from non-default git repo on Windows.
|
||||
|
||||
## 0.8.0 (2016-06-07)
|
||||
|
||||
### New features and improvements
|
||||
|
||||
* Added support for Lua 5.3.3.
|
||||
|
||||
## 0.7.0 (2016-05-03)
|
||||
|
||||
### New features and improvements
|
||||
|
||||
* Windows support with automatic Visual Studio setup.
|
||||
* New values for `--target` option for selecting Visual Studio version and
|
||||
target architecture.
|
||||
* New `--show` option for listing programs installed in a location.
|
||||
* New `--patch` option for applying official patches for bugs in Lua (#21).
|
||||
* Documented `--downloads` and `--builds` options, may be useful for caching.
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fixed an error when a command failed when using Python 3 (#15).
|
||||
* Fixed error when running with `HOME` environment variable undefined (#24).
|
||||
|
||||
## 0.6.2 (2016-03-22)
|
||||
|
||||
### Fixes
|
||||
|
||||
Fixed a bug that resulted in Lua being built without compatibility flags (#14).
|
||||
|
||||
## 0.6.1 (2016-03-22) [yanked]
|
||||
|
||||
## 0.6.0 (2016-03-20)
|
||||
|
||||
### Breaking changes
|
||||
|
||||
* `hererocks --luajit 2.1` now installs LuaJIT 2.1.0-beta2 instead of
|
||||
using v2.1 git branch. Use `hererocks --luajit @v2.1` to get old behaviour.
|
||||
|
||||
### New features and improvements
|
||||
|
||||
* LuaJIT versions 2.1.0-beta1 - 2.1.0-beta2 are now supported.
|
||||
* Lua is now built manually (`make` is not run).
|
||||
* OS X 10.4+ support for Lua 5.1.0 - 5.1.2.
|
||||
* SHA256 checksums for downloaded archives are now verified (#13).
|
||||
* `--no-readline` flag for building Lua without readline library.
|
||||
* Lua archives are now downloaded using HTTPS.
|
||||
|
||||
### Fixes
|
||||
|
||||
* `luajit.h` is installed for LuaJIT (#11, #12).
|
||||
* `jit.*` modules work correctly for LuaJIT 2.0.1.
|
||||
|
||||
## 0.5.0 (2016-01-11)
|
||||
|
||||
### New features and improvements
|
||||
|
||||
LuaRocks 2.3.0 is now supported.
|
||||
|
||||
## 0.4.0 (2016-01-03)
|
||||
|
||||
### New features and improvements
|
||||
|
||||
* Documented --no-git-cache option.
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fixed error when installing Lua 5.1 on OS X, thanks to @xpol.
|
||||
|
||||
## 0.3.1 (2015-12-22)
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fetch LuaJIT from GitHub mirror archive to avoid 'Connection refused' errors
|
||||
when installing it on Travis.
|
||||
|
||||
## 0.3.0 (2015-12-19)
|
||||
|
||||
### New features and improvements
|
||||
|
||||
* LuaRocks versions 2.0.8 - 2.0.12 are now supported.
|
||||
* `--compat=none` now turns off Lua 5.0 compatibility options when installing
|
||||
Lua 5.1
|
||||
* Default git repos are cached.
|
||||
* New `--cflags` option for adding custom compiler flags when compiling Lua and
|
||||
LuaJIT.
|
||||
|
||||
### Fixes
|
||||
|
||||
* LuaJIT `jit.*` modules are now properly installed.
|
||||
|
||||
## 0.2.0 (2015-12-02)
|
||||
|
||||
### New features and improvements
|
||||
|
||||
* Lua 5.3.2 is now supported.
|
||||
* Versions of installed programs are showed in status messages.
|
||||
|
||||
## 0.1.0 (2015-11-29)
|
||||
|
||||
### Breaking changes
|
||||
|
||||
* Removed `-c` and `-t` shortcuts.
|
||||
|
||||
### New features and improvements
|
||||
|
||||
* `--verbose` flag that prints commands hererocks runs.
|
||||
* hererocks now checks if requested versions are already installed, and skips
|
||||
installation in that case. Override using `--ignore-installed/-i` flag.
|
||||
* PUC Rio Lua now has default git URI.
|
||||
|
||||
### Fixes
|
||||
|
||||
* Installing from a git branch now works with newer git versions.
|
||||
|
||||
## 0.0.3 (2015-08-14)
|
||||
|
||||
The first release.
|
||||
2
LICENSE
2
LICENSE
@ -1,6 +1,6 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015 - 2016 Peter Melnichenko
|
||||
Copyright (c) 2015 - 2017 Peter Melnichenko
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
57
README.rst
57
README.rst
@ -16,13 +16,13 @@ Basic usage
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
hererocks lua53 -l5.3 -rlatest # Install Lua 5.3 with latest LuaRocks into lua53 directory.
|
||||
lua53/bin/lua -v # Lua can now be run from lua53/bin directory.
|
||||
lua53/bin/luarocks --version # Same for LuaRocks.
|
||||
lua53/bin/luarocks install luacheck # Libraries and programs installed with LuaRocks end up in
|
||||
lua53/bin/luacheck --version # lua53 directory, too, with scripts in lua53/bin.
|
||||
export PATH="$PWD/lua53/bin:$PATH" # Add it to PATH it to run programs directly,
|
||||
lua -v # without lua53/bin prefix.
|
||||
hererocks lua53 -l5.3 -rlatest # Install Lua 5.3 with latest LuaRocks into 'lua53' directory.
|
||||
source lua53/bin/activate # Run activation script, adding 'lua53/bin' to $PATH.
|
||||
lua -v # Lua, LuaRocks, and programs
|
||||
luarocks install luacheck # installed using LuaRocks
|
||||
luacheck --version # can now be used.
|
||||
deactivate-lua # Remove 'lua53/bin' from $PATH.
|
||||
lua53/bin/lua -v # All the binaries can still be used directly.
|
||||
|
||||
For more info see below or run ``hererocks --help`` for a complete listing of options.
|
||||
|
||||
@ -42,7 +42,29 @@ Requirements
|
||||
|
||||
* Windows: MinGW with tools such as ``gcc`` in PATH, or Visual Studio 2008 or later (see help message for ``--target``).
|
||||
* OS X: ``cc``.
|
||||
* Other: ``gcc``.
|
||||
* Other systems: ``gcc``.
|
||||
|
||||
Activation scripts
|
||||
------------------
|
||||
|
||||
``hererocks`` writes several activation scripts into ``bin`` subdirectory of the installation directory.
|
||||
When sourced (on Windows: simply executed) they add path to that subdirectory to ``PATH`` environment variable.
|
||||
This allows one to use ``lua``, ``luarocks`` and other programs installed in the created environment directly.
|
||||
Additionally, activation scripts make ``deactivate-lua`` command available. It removes path to currently activated
|
||||
environment from ``PATH``. Activating an environment deactivates the previous one automatically, if it exists.
|
||||
|
||||
Several versions of activation scripts are installed to support various shells:
|
||||
|
||||
* Windows:
|
||||
|
||||
* Batch: ``activate.bat``.
|
||||
* PowerShell: ``activate.ps1``.
|
||||
|
||||
* Other systems:
|
||||
|
||||
* Bash, Zsh, Dash: ``activate``.
|
||||
* Fish: ``activate.fish``.
|
||||
* Tcsh, csh: ``activate.csh``.
|
||||
|
||||
Command-line options
|
||||
--------------------
|
||||
@ -61,8 +83,8 @@ Version selection
|
||||
|
||||
``--lua/-l``, ``--luajit/-j`` and ``--luarocks/-r`` options select versions of programs to install. There are three ways to specify how to fetch the sources:
|
||||
|
||||
* Using version number, such as ``5.1.5``. If patch or minor versions are left out the latest possible version will be used, e.g. for Lua ``5.2`` is currently equivalent to ``5.2.4`` and for LuaJIT ``2.1`` is same as ``2.1.0-beta2``. ``latest`` or ``^`` can be used to select the latest stable version. ``hererocks`` will fetch and unpack sources of the selected version from corresponding downloads location, verifying their SHA256 checksum.
|
||||
* Using git URI plus reference to checkout, separated by ``@``. Default reference is ``master``, and there are default git URIs for Lua (https://github.com/lua/lua), LuaJIT (https://github.com/luajit/luajit) and LuaRocks (https://github.com/keplerproject/luarocks). For instance, ``--luajit @458a40b`` installs from a commit at the LuaJIT git repository and ``--luajit @`` installs from its master branch. ``hererocks`` will use ``git`` command for cloning.
|
||||
* Using version number, such as ``5.1.5``. If patch or minor versions are left out the latest possible version will be used, e.g. for Lua ``5.2`` is currently equivalent to ``5.2.4`` and for LuaJIT ``2.1`` is same as ``2.1.0-beta3``. ``latest`` or ``^`` can be used to select the latest stable version. ``hererocks`` will fetch and unpack sources of the selected version from corresponding downloads location, verifying their SHA256 checksum.
|
||||
* Using git URI plus reference to checkout, separated by ``@``. Default reference is ``master``, and there are default git URIs for Lua (https://github.com/lua/lua), LuaJIT (https://github.com/luajit/luajit) and LuaRocks (https://github.com/luarocks/luarocks). For instance, ``--luajit @458a40b`` installs from a commit at the LuaJIT git repository and ``--luajit @`` installs from its master branch. ``hererocks`` will use ``git`` command for cloning.
|
||||
* Using path to a local directory.
|
||||
|
||||
Compatibility flags
|
||||
@ -73,7 +95,7 @@ Lua and LuaJIT have some flags that add compatibility with other Lua versions. L
|
||||
Installing standard PUC-Rio Lua
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Available versions: 5.1 - 5.1.5, 5.2.0 - 5.2.4, 5.3.0 - 5.3.3.
|
||||
Available versions: 5.1 - 5.1.5, 5.2.0 - 5.2.4, 5.3.0 - 5.3.5, 5.4.0-work1 - 5.4.0-work2 (5.4 and 5.4.0 are aliases for 5.4.0-work2). ``latest`` and ``^`` version aliases point to ``5.3.5``.
|
||||
|
||||
Use ``5.1.0`` to install Lua ``5.1`` which was released without patch version for some reason.
|
||||
|
||||
@ -82,14 +104,14 @@ When building Lua, ``hererocks`` tries to emulate a sensible ``make`` target. Th
|
||||
Installing LuaJIT
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
Available versions: 2.0.0 - 2.0.4, 2.1.0-beta1 - 2.1.0-beta2.
|
||||
Available versions: 2.0.0 - 2.0.5, 2.1.0-beta1 - 2.1.0-beta3. ``latest`` and ``^`` version aliases point to ``2.0.5``.
|
||||
|
||||
Installing LuaRocks
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Available versions: 2.0.8 - 2.0.12, 2.1.0 - 2.1.2, 2.2.0 - 2.2.2, 2.3.0, 3 (installs from ``luarocks-3`` branch of the LuaRocks git repository).
|
||||
Available versions: 2.0.8 - 2.0.13, 2.1.0 - 2.1.2, 2.2.0 - 2.2.2, 2.3.0, 2.4.0 - 2.4.4, 3.0.0 - 3.0.2. ``latest`` and ``^`` version aliases point to ``2.4.4``.
|
||||
|
||||
Version 2.0.8 does not support Lua 5.2. Versions 2.1.0 - 2.1.2 do not support Lua 5.3.
|
||||
Version 2.0.8 does not support Lua 5.2. Versions 2.0.8 - 2.1.2 do not support Lua 5.3.
|
||||
|
||||
Using hererocks to set up automated testing
|
||||
-------------------------------------------
|
||||
@ -112,7 +134,7 @@ Popular continuous integration services such as `Travis-CI <https://travis-ci.or
|
||||
before_install:
|
||||
- pip install hererocks
|
||||
- hererocks env --$LUA -rlatest # Use latest LuaRocks, install into 'env' directory.
|
||||
- export PATH="$PWD/env/bin:$PATH" # Add directory with all installed binaries to PATH.
|
||||
- source env/bin/activate # Add directory with all installed binaries to PATH.
|
||||
- luarocks install busted
|
||||
|
||||
install:
|
||||
@ -135,9 +157,10 @@ Equivalent configuration (``appveyor.yml``) for `Appveyor <http://www.appveyor.c
|
||||
- LUA: "luajit 2.1"
|
||||
|
||||
before_build:
|
||||
- set PATH=%CD%\env\bin;C:\Python27\Scripts;%PATH% # Add directory containing 'pip'
|
||||
- pip install hererocks # to PATH, too.
|
||||
- set PATH=C:\Python27\Scripts;%PATH% # Add directory containing 'pip' to PATH
|
||||
- pip install hererocks
|
||||
- hererocks env --%LUA% -rlatest
|
||||
- call env\bin\activate
|
||||
- luarocks install busted
|
||||
|
||||
build_script:
|
||||
|
||||
@ -7,11 +7,11 @@ environment:
|
||||
|
||||
build_script:
|
||||
- PATH %CD%\here\bin;C:\mingw\bin;C:\python%Python%;C:\python%Python%\scripts;%PATH%
|
||||
- pip install pyflakes pep8 coverage coveralls nose
|
||||
- pip install pyflakes pycodestyle coverage coveralls nose
|
||||
|
||||
test_script:
|
||||
- pyflakes .
|
||||
- pep8 .
|
||||
- pycodestyle .
|
||||
- nosetests
|
||||
- coverage report
|
||||
- if not "%COVERALLS_REPO_TOKEN%"=="" coveralls
|
||||
|
||||
864
hererocks.py
864
hererocks.py
File diff suppressed because it is too large
Load Diff
@ -1,3 +1,2 @@
|
||||
[pep8]
|
||||
ignore = E203,E302
|
||||
max-line-length = 119
|
||||
[pycodestyle]
|
||||
ignore = E203,E302,E305,E501
|
||||
|
||||
8
setup.py
8
setup.py
@ -9,7 +9,7 @@ readme.close()
|
||||
|
||||
setuptools.setup(
|
||||
name="hererocks",
|
||||
version="0.8.0",
|
||||
version="0.20.0",
|
||||
description="Tool for installing Lua and LuaRocks locally",
|
||||
long_description=long_description,
|
||||
keywords="lua",
|
||||
@ -18,7 +18,7 @@ setuptools.setup(
|
||||
author_email="mpeterval@gmail.com",
|
||||
license="MIT",
|
||||
classifiers=[
|
||||
"Development Status :: 3 - Alpha",
|
||||
"Development Status :: 4 - Beta",
|
||||
"License :: OSI Approved :: MIT License",
|
||||
"Programming Language :: Python :: 2",
|
||||
"Programming Language :: Python :: 2.7",
|
||||
@ -28,7 +28,9 @@ setuptools.setup(
|
||||
"Programming Language :: Python :: 3.2",
|
||||
"Programming Language :: Python :: 3.3",
|
||||
"Programming Language :: Python :: 3.4",
|
||||
"Programming Language :: Python :: 3.5"
|
||||
"Programming Language :: Python :: 3.5",
|
||||
"Programming Language :: Python :: 3.6",
|
||||
"Programming Language :: Python :: 3.7"
|
||||
],
|
||||
py_modules=["hererocks"],
|
||||
entry_points={
|
||||
|
||||
21
test/check_activate.bat
Normal file
21
test/check_activate.bat
Normal file
@ -0,0 +1,21 @@
|
||||
@echo off
|
||||
|
||||
echo "initial: %PATH%"
|
||||
|
||||
call "test\here\bad (dir) 1\bin\activate"
|
||||
echo "activate 1: %PATH%"
|
||||
|
||||
call deactivate-lua
|
||||
echo "deactivate 1: %PATH%"
|
||||
|
||||
call "test\here\bad (dir) 1\bin\activate"
|
||||
echo "activate 1 again: %PATH%"
|
||||
|
||||
call "test\here\bad (dir) 1\bin\activate"
|
||||
echo "reactivate 1: %PATH%"
|
||||
|
||||
call "test\here\bad (dir) 2\bin\activate"
|
||||
echo "activate 2: %PATH%"
|
||||
|
||||
call deactivate-lua
|
||||
echo "deactivate 2: %PATH%"
|
||||
20
test/check_activate.sh
Executable file
20
test/check_activate.sh
Executable file
@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env bash
|
||||
echo "initial: $PATH"
|
||||
|
||||
source "test/here/bad (dir) 1/bin/activate"
|
||||
echo "activate 1: $PATH"
|
||||
|
||||
deactivate-lua
|
||||
echo "deactivate 1: $PATH"
|
||||
|
||||
source "test/here/bad (dir) 1/bin/activate"
|
||||
echo "activate 1 again: $PATH"
|
||||
|
||||
source "test/here/bad (dir) 1/bin/activate"
|
||||
echo "reactivate 1: $PATH"
|
||||
|
||||
source "test/here/bad (dir) 2/bin/activate"
|
||||
echo "activate 2: $PATH"
|
||||
|
||||
deactivate-lua
|
||||
echo "deactivate 2: $PATH"
|
||||
@ -29,7 +29,7 @@ class TestCLI(unittest.TestCase):
|
||||
args[0] += ".bat"
|
||||
|
||||
process = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||
output = process.communicate()[0].decode("UTF-8")
|
||||
output = process.communicate()[0]
|
||||
|
||||
if process.returncode != 0:
|
||||
raise AssertionError("Error running command '{}': code {}, output:\n{}".format(
|
||||
@ -39,19 +39,21 @@ class TestCLI(unittest.TestCase):
|
||||
actual_output_lines = output.splitlines()
|
||||
|
||||
for expected_output_line in expected_output_lines:
|
||||
expected_output_line = expected_output_line.encode("UTF-8")
|
||||
|
||||
if not any(expected_output_line in actual_output_line for actual_output_line in actual_output_lines):
|
||||
raise AssertionError("Expected to see '{}' in output of command '{}', got output:\n{}".format(
|
||||
expected_output_line, " ".join(args), output))
|
||||
|
||||
def assertHererocksSuccess(self, args, expected_output_lines=None):
|
||||
def assertHererocksSuccess(self, args, expected_output_lines=None, location="here"):
|
||||
self.assertSuccess([
|
||||
"coverage", "run", "-a",
|
||||
"hererocks.py", os.path.join("test", "here")] + args, expected_output_lines, from_prefix=False)
|
||||
"hererocks.py", os.path.join("test", location)] + args, expected_output_lines, from_prefix=False)
|
||||
|
||||
def test_install_latest_lua_with_latest_luarocks(self):
|
||||
self.assertHererocksSuccess(["--lua", "latest", "--luarocks", "latest"])
|
||||
self.assertHererocksSuccess(["--show"], ["Programs installed in", "Compat: default"])
|
||||
self.assertSuccess(["lua", "-v"], ["Lua 5.3.3"])
|
||||
self.assertSuccess(["lua", "-v"], ["Lua 5.3.5"])
|
||||
self.assertSuccess(["lua", "-e", "assert(bit32)"])
|
||||
|
||||
self.assertSuccess(["luarocks", "--version"])
|
||||
@ -61,6 +63,14 @@ class TestCLI(unittest.TestCase):
|
||||
self.assertHererocksSuccess(["--lua", "latest", "--luarocks", "latest"], ["already installed"])
|
||||
self.assertHererocksSuccess(["--luarocks", "latest", "--ignore-installed"], ["Fetching", "cached"])
|
||||
|
||||
def test_install_latest_lua_with_luarocks_from_git(self):
|
||||
self.assertHererocksSuccess(["--lua", "latest", "--luarocks", "https://github.com/mpeterv/luarocks@master"])
|
||||
|
||||
def test_install_lua_from_git_with_latest_luarocks(self):
|
||||
self.assertHererocksSuccess(["--lua", "@b1daa06", "--luarocks", "latest"])
|
||||
self.assertHererocksSuccess(["--show"], ["Programs installed in", "cloned from https://github.com/lua/lua"])
|
||||
self.assertSuccess(["luarocks", "--version"])
|
||||
|
||||
def test_verbose_install_bleeding_edge_luajit_with_latest_luarocks(self):
|
||||
self.assertHererocksSuccess(["--luajit", "@v2.1", "--luarocks", "latest", "--verbose"])
|
||||
self.assertSuccess(["lua", "-v"], ["LuaJIT 2.1.0"])
|
||||
@ -71,6 +81,7 @@ class TestCLI(unittest.TestCase):
|
||||
self.assertSuccess(["hererocks-test"], ["LuaJIT 2.1.0"])
|
||||
|
||||
self.assertHererocksSuccess(["--luajit", "@v2.1", "--luarocks", "latest"], ["already installed"])
|
||||
self.assertHererocksSuccess(["--show"], ["cloned from https://github.com/LuaJIT/LuaJIT"])
|
||||
|
||||
def test_install_lua_5_1_without_compat_without_readline_with_old_luarocks(self):
|
||||
self.assertHererocksSuccess(["--lua", "5.1", "--compat", "none", "--no-readline", "--luarocks", "2.0.8"])
|
||||
@ -107,7 +118,7 @@ class TestCLI(unittest.TestCase):
|
||||
["--lua", "5.2", "--ignore-installed", "--compat", "none", "--builds", os.path.join("test", "builds")],
|
||||
["compat: none) (cached)"])
|
||||
|
||||
def test_install_lua_from_given_git_repo_with_luarocks_from_local_sources(self):
|
||||
def test_install_lua_5_2_with_luarocks_from_local_sources(self):
|
||||
local_luarocks = os.path.join("test", "luarocks")
|
||||
|
||||
if not os.path.exists(local_luarocks):
|
||||
@ -115,7 +126,31 @@ class TestCLI(unittest.TestCase):
|
||||
"git", "clone", "https://github.com/keplerproject/luarocks",
|
||||
"--depth=1", local_luarocks], from_prefix=False)
|
||||
|
||||
self.assertHererocksSuccess(["--lua", "https://github.com/lua/lua@5.1.3-rc3", "--luarocks", local_luarocks])
|
||||
self.assertSuccess(["lua", "-v"], ["Lua 5.1.3"])
|
||||
self.assertHererocksSuccess(["--show"], [
|
||||
"Lua 5.1", "cloned from https://github.com/lua/lua", "from local sources"])
|
||||
self.assertHererocksSuccess(["--lua", "5.2", "--luarocks", local_luarocks])
|
||||
self.assertHererocksSuccess(["--show"], ["from local sources"])
|
||||
|
||||
def test_activate_scripts(self):
|
||||
self.assertHererocksSuccess(["--lua", "5.1"], location=os.path.join("here", "bad (dir) 1"))
|
||||
self.assertHererocksSuccess(["--lua", "5.2"], location=os.path.join("here", "bad (dir) 2"))
|
||||
checker = os.path.join("test", "check_activate." + ("bat" if os.name == "nt" else "sh"))
|
||||
|
||||
path = os.getenv("PATH")
|
||||
path1 = os.path.abspath(os.path.join("test", "here", "bad (dir) 1", "bin"))
|
||||
path2 = os.path.abspath(os.path.join("test", "here", "bad (dir) 2", "bin"))
|
||||
self.assertSuccess([checker], [
|
||||
"initial: {}".format(path),
|
||||
"activate 1: {}{}{}".format(path1, os.pathsep, path),
|
||||
"deactivate 1: {}".format(path),
|
||||
"activate 1 again: {}{}{}".format(path1, os.pathsep, path),
|
||||
"reactivate 1: {}{}{}".format(path1, os.pathsep, path),
|
||||
"activate 2: {}{}{}".format(path2, os.pathsep, path),
|
||||
"deactivate 2: {}".format(path)
|
||||
], from_prefix=False)
|
||||
|
||||
def test_install_lua_5_4_with_luarocks_3(self):
|
||||
self.assertHererocksSuccess(["--lua", "5.4", "--luarocks", "3"])
|
||||
self.assertHererocksSuccess(["--lua", "5.4.0-work1", "--luarocks", "3"])
|
||||
|
||||
if os.name == "nt":
|
||||
self.assertHererocksSuccess(["--lua", "5.4", "--luarocks", "3", "--target", "vs"])
|
||||
self.assertHererocksSuccess(["--lua", "5.4.0-work1", "--luarocks", "3", "--target", "vs"])
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user