| #!/usr/bin/env /bash |
| set -ev |
| |
| # this script installs a lua / luarocks environment in .travis/lua |
| # this is necessary because travis docker architecture (the fast way) |
| # does not permit sudo, and does not contain a useful lua installation |
| |
| # After this script is finished, you can configure your environment to |
| # use it by sourcing lua_env.sh |
| |
| source ci/travis/platform.sh |
| |
| # The current versions when this script was written |
| LUA_VERSION=5.2.4 |
| LUAROCKS_VERSION=2.2.2 |
| |
| # directory where this script is located |
| SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) |
| |
| # civetweb base dir |
| PROJECT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )"/../.. && pwd ) |
| |
| # fetch and unpack lua src |
| cd $SCRIPT_DIR |
| LUA_BASE=lua-$LUA_VERSION |
| rm -rf $LUA_BASE |
| curl http://www.lua.org/ftp/$LUA_BASE.tar.gz | tar zx |
| |
| # build lua |
| cd $LUA_BASE |
| make $PLATFORM |
| make local |
| |
| # mv built lua install to target Lua dir |
| LUA_DIR=$PROJECT_DIR/ci/lua |
| rm -rf $LUA_DIR |
| mv $SCRIPT_DIR/$LUA_BASE/install $LUA_DIR |
| |
| # add to path required by luarocks installer |
| export PATH=$LUA_DIR/bin:$PATH |
| |
| |
| # fetch and unpack luarocks |
| cd $SCRIPT_DIR |
| LUAROCKS_BASE=luarocks-$LUAROCKS_VERSION |
| rm -rf ${LUAROCKS_BASE} |
| LUAROCKS_URL=http://luarocks.org/releases/${LUAROCKS_BASE}.tar.gz |
| # -L because it's a 302 redirect |
| curl -L $LUAROCKS_URL | tar xzp |
| cd $LUAROCKS_BASE |
| |
| # build luarocks |
| ./configure --prefix=$LUA_DIR |
| make build |
| make install |
| |
| # cleanup source dirs |
| cd $SCRIPT_DIR |
| rm -rf $LUAROCKS_BASE |
| rm -rf $LUA_BASE |
| |