Files
itgmania212121/Utils/make-src-archive.sh
T

86 lines
1.7 KiB
Bash
Executable File

#!/bin/sh
LINUX= MAC= WIN=
# Parse options
while :; do
case "$1" in
-m) MAC=1; shift;;
-w) WIN=1; shift;;
*) break;;
esac
done
# Usage message
if [ -z "$1" ]; then
echo "\
Usage: $0 [-m] [-w] REV
Generates a source tarball at \`dist/stepmania-TAG.tar.bz2'.
-m Include Mac-specific build components
-w Include Windows-specific build components\
REV can be a Mercurial revision or tag
" 1>&2
exit 1
fi
# Get confirmation
echo "WARNING! This will do a clean update of the current repository." 1>&2
echo "If you have any uncommitted changes or extra files in this repository," 1>&2
echo "they will be LOST!" 1>&2
echo
read -sn1 -p "Do you want to continue [y/N]? " ISOK
if [ "$ISOK" != y -a "$ISOK" != Y ]; then
echo n
exit 1
fi
echo y
# Clean the source tree
hg update -C "$1"
hg clean --all
# This replaces autogen.sh. Run now so our users don't need to have autoconf
# and friends installed.
#
# Note: the -f flag is here so any symlinks in autoconf/ get replaced with real
# files.
autoreconf -if
# Tarball will be placed here
mkdir dist
# List excludes for tar's -X flag
{
echo './dist'
echo '*/.hg*'
echo './autoconf/m4'
echo './autom4te.cache'
echo './autogen.sh'
echo './aclocal.m4'
echo '*/*.a[mc]'
echo './_assets'
echo './Utils/Font generation'
# OSX
if [ -z "$MAC" ]; then
echo './Xcode'
fi
# Windows/misc
if [ -z "$WIN" ]; then
echo './Program'
echo './Installer'
echo './sm-ssc.nsi'
echo './Utils/doxygen'
echo './Utils/Graphviz'
echo './Utils/NSIS'
echo './src/BaseClasses'
echo './src/Texture Font Generator'
echo './src/smpackage*'
echo '*.[ao]'
echo '*.lib'
echo '*.dll'
echo '*.exe'
echo '*.bat'
fi
} | tar cvjf "dist/stepmania-$1-src.tar.bz2" -X- . --transform "s,^\.,stepmania-$1,"