xonotic/all
2017-06-13 16:39:44 +02:00

126 lines
2.0 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/sh
# vim: filetype=zsh
set -e
if [ -n "$ZSH_VERSION" ]; then
setopt SH_WORD_SPLIT
fi
if [ -z "$ECHO" ]; then
if echo "\\\\" | grep .. >/dev/null; then
ECHO=echo
else
ECHO=`which echo`
fi
fi
# I use this in EVERY shell script ;)
LF="
"
ESC=""
d00=`pwd`
case "$0" in
/*/all)
export d0="${0%/all}"
;;
*/all)
export d0="$d00/${0%/all}"
;;
*/all.xonotic.sh)
;;
*)
$ECHO "Cannot find myself."
$ECHO "Please run this script with the working directory inside a Xonotic checkout."
;;
esac
cd "$d0"
d0=`pwd`
SELF="$d0/all"
# If we are on WINDOWS:
case "$0" in
all|*/all)
case "`uname`" in
MINGW*|Win*)
# Windows hates users. So this script has to copy itself elsewhere first...
cp "$SELF" ../all.xonotic.sh
export WE_HATE_OUR_USERS=1
exec ../all.xonotic.sh "$@"
;;
esac
;;
esac
msg()
{
$ECHO >&2 "$ESC""[1m$*$ESC""[m"
}
self=`git hash-object "$SELF"`
checkself()
{
self_new=`git hash-object "$SELF"`
if [ x"$self" != x"$self_new" ]; then
msg "./all has changed."
if [ -z "$XONOTIC_FORBID_RERUN_ALL" ]; then
msg "Rerunning the requested operation to make sure."
export XONOTIC_FORBID_RERUN_ALL=1
exec "$SELF" "$@"
else
msg "Please try $SELF update, and then retry your requested operation."
exit 1
fi
fi
return 0
}
verbose()
{
msg "+ $*"
"$@"
}
yesno()
{
yesno=
while [ x"$yesno" != x"y" -a x"$yesno" != x"n" ]; do
eval "$2"
$ECHO "$1"
if ! IFS= read -r yesno; then
yesno=n
break
fi
done
[ x"$yesno" = x"y" ]
}
enter()
{
$2 cd "$1" || exit 1
check_mergeconflict "$1" # defined in git.subr
}
if [ "$#" = 0 ]; then
set -- help
fi
cmd=$1
shift
# project config
. "$d0/misc/tools/all/config.subr"
# shared commands
handled=false
. "$d0/misc/tools/all/git.subr" "$@"
# optional modules
$handled || . "$d0/misc/tools/all/release.subr" "$@"
$handled || . "$d0/misc/tools/all/xonotic.subr" "$@"
if ! $handled; then
if [ x"$cmd" != x"help" ]; then
$ECHO "Run $SELF help for help."
exit 1
fi
fi