#!/bin/bash -e if ! [ "$1" ] then echo "usage: $0 " exit 1 fi if ! [ -d ".git" ] then echo "Should be run from the LuaRocks git repo dir." exit 1 fi make clean || exit 1 if [ "$1" != "dev" ] then ROCKSPEC="luarocks-$1-1.rockspec" [ -e "$ROCKSPEC" ] || { echo echo "$ROCKSPEC is missing. Please check rockspec version is correct." } grep -q "LuaRocks version $1" "configure" || { echo echo "version in configure is incorrect. Please fix it." exit 1 } grep -q "\"$1-1\"" "$ROCKSPEC" || { echo echo "version in rockspec is incorrect. Please fix it." exit 1 } grep -q "program_version = \"$1\"" src/luarocks/core/cfg.lua || { echo echo "program_version in src/luarocks/core/cfg.lua is incorrect. Please fix it." exit 1 } grep -q "version: $1\\." appveyor.yml || { echo echo "version in appveyor.yml is incorrect. Please fix it." exit 1 } grep -q "LUAROCKS_VER: $1" appveyor.yml || { echo echo "LUAROCKS_VER in appveyor.yml is incorrect. Please fix it." exit 1 } # e.g. if $1 is "2.3.0", $program_series is "2.3" program_series=${1%.*} grep -q "program_series = \"$program_series\"" src/luarocks/core/cfg.lua || { echo echo "program_series in src/luarocks/core/cfg.lua is incorrect. Please fix it." exit 1 } grep -q "vars.VERSION = \"$program_series\"" install.bat || { echo echo "vars.VERSION in install.bat is incorrect. Please fix it." exit 1 } fi out="luarocks-$1" rm -rf "$out" mkdir "$out" shift git ls-files | while read i do if [ -f "$i" ] then dir=`dirname $i` mkdir -p "$out/$dir" cp "$i" "$out/$dir" fi done rm -rf "release-unix" "release-windows" "$out.tar.gz" "$out-win32.zip" mkdir "release-unix" cp -a "$out" "release-unix" mkdir "release-windows" mv "$out" "release-windows/$out-win32" cd "release-unix/$out" rm -rf makedist smoke_test.sh install.bat win32 .travis.yml .gitignore appveyor* .appveyor cd .. tar czvpf ../"$out.tar.gz" "$out" rm -f ../"$out.tar.gz.asc" cd .. rm -rf "release-unix" cd "release-windows/$out-win32" rm -rf makedist smoke_test.sh Makefile GNUmakefile configure .travis.yml .gitignore test appveyor* .appveyor cd .. zip -r ../"$out-win32.zip" "$out-win32" rm -f ../"$out-win32.zip.asc" cd .. rm -rf "release-windows" if [ "$1" = "binary" ] then shift ./configure make binary cd build-binary mkdir "$out-linux-x86_64" cp luarocks.exe "$out-linux-x86_64/luarocks" cp luarocks-admin.exe "$out-linux-x86_64/luarocks-admin" zip "../$out-linux-x86_64.zip" "$out-linux-x86_64"/* cd .. rm -f "$out-linux-x86_64.zip.asc" make windows-binary cd build-windows-binary mkdir "$out-windows-32" cp luarocks.exe "$out-windows-32/luarocks.exe" cp luarocks-admin.exe "$out-windows-32/luarocks-admin.exe" zip "../$out-windows-32.zip" "$out-windows-32"/* cd .. rm -f "$out-windows-32.zip.asc" fi if [ "$1" = "sign" ] then shift for f in \ $out-windows-32.zip \ $out-linux-x86_64.zip \ $out-win32.zip \ $out.tar.gz do [ -e "$f" -a ! -e "$f.asc" ] && gpg --armor --output "$f.asc" --detach-sign "$f" done fi