echo "\e[1m$*\e[m"
}
-checksum()
-{
- if [ -x /usr/bin/md5sum ]; then
- /usr/bin/md5sum "$@"
- elif [ -x /bin/md5sum ]; then
- /bin/md5sum "$@"
- elif [ -x /usr/bin/cksum ]; then
- /usr/bin/cksum "$@"
- else
- echo "NOCHECKSUM"
- fi
-}
-
-self=`checksum "$SELF"`
+self=`git hash-object "$SELF"`
checkself()
{
- self_new=`checksum "$SELF"`
+ self_new=`git hash-object "$SELF"`
if [ x"$self" != x"$self_new" ]; then
msg "./all has changed."
if [ -z "$XONOTIC_FORBID_RERUN_ALL" ]; then
repos=`for d in $repos; do
p="${d%dir}"
- if [ x"$p" = x"$d" ] || [ -d "$d" ] || ! [ -f "$p" ]; then
+ if [ x"$p" = x"$d" ] || [ -d "$d" ] || ! { [ -f "$d.no" ] || [ -f "$p" ]; }; then
echo "$d"
fi
done`
enter "$d0/$d" verbose
r=`git symbolic-ref HEAD`
r=${r#refs/heads/}
- if git diff HEAD | grep .; then
+ diffdata=`git diff --color HEAD`
+ if [ -n "$diffdata" ]; then
# we have uncommitted changes
- if yesno "Uncommitted changes in \"$r\" in $dv. Commit?"; then
+ if yesno "Uncommitted changes in \"$r\" in $dv. Commit?" 'echo "$diffdata" | less -r'; then
verbose git commit -a
fi
fi
rem=`git config "branch.$r.remote" || echo origin`
bra=`git config "branch.$r.merge" || echo "$r"`
upstream="$rem/$bra"
- if ! [ git rev-parse "$upstream" ]; then
- upstream="`repobranch "$d"`"
+ if ! git rev-parse "$upstream" >/dev/null 2>&1; then
+ upstream="origin/`repobranch "$d"`"
fi
- if git log "$upstream".."$r" | grep .; then
- if yesno "Push \"$r\" in $dv?"; then
+ logdata=`echo git log --color "$upstream".."$r"`
+ if [ -n "$logdata" ]; then
+ if yesno "Push \"$r\" in $dv?" 'echo "$logdata" | less -r'; then
verbose git push "$rem" HEAD
fi
fi
mkdir -p Xonotic/"$1"
;;
release-prepare)
- "$SELF" each git clean -fxd
+#"$SELF" each git clean -fxd
mkdir -p Xonotic
"$SELF" release-copy Docs/
"$SELF" release-copy misc/
"$SELF" release-copy xonotic-linux-glx.sh
"$SELF" release-copy xonotic-linux-sdl.sh
"$SELF" release-mkdir data
- ;;
- release-gamedata)
- "$SELF" release-copy data/font-dejavu.pk3dir/
- "$SELF" release-copy data/xonotic-data.pk3dir/
- "$SELF" release-copy data/xonotic-maps.pk3dir/
- "$SELF" release-copy data/xonotic-music.pk3dir/
- "$SELF" release-copy data/xonotic-nexcompat.pk3dir/
+ "$SELF" release-mkdir fteqcc
;;
release-copy)
rsync --exclude=.git -vaSHPAX "$1" Xonotic/"$1"
;;
- release-engine)
- mv Xonotic/misc/buildfiles/w32/* Xonotic/
- mv Xonotic/misc/buildfiles/osx/* Xonotic/
+ release-compile-run)
+ host=$1
+ buildpath=$2
+ maketargets=$3
+ makeflags=$4
+ srcdir=$5
+ targetfiles=$6
+ rsync --delete -zvaSHPAX "$srcdir"/ "$host:$buildpath/"
+ ssh "$host" ". ~/.profile && cd $buildpath && make clean $maketargets $makeflags"
+ for f in $targetfiles; do
+ rsync -zvaSHPAX "$host:$buildpath/${f%:*}" "${f##*:}"
+ done
;;
- release-pack)
- # recompress, and edit
+ release-compile)
+ suffix=$1
+ makeflags=$2
+ fteqcc_maketargets=$3
+ fteqcc_files=$4
+ darkplaces_maketargets=$5
+ darkplaces_files=$6
+ "$SELF" release-compile-run "xonotic-build-$suffix" /tmp/fteqcc.build."$suffix" "$fteqcc_maketargets" "$makeflags" "fteqcc" "$fteqcc_files"
+ "$SELF" release-compile-run "xonotic-build-$suffix" /tmp/Darkplaces.build."$suffix" "$darkplaces_maketargets" "$makeflags" "fteqcc" "$darkplaces_files"
+ ;;
+ release-engine-win32)
+ rsync --exclude=.git -vaSHPAX Xonotic/misc/buildfiles/w32/* Xonotic/
+ "$SELF" release-compile win32 \
+ '"DP_MAKE_TARGET=mingw CC="$HOME/mingw32/bin/i386-mingw32-gcc -g -DSUPPORTDIRECTX -DUSE_WSPIAPI_H -I$HOME/dxheaders" WINDRES="$HOME/mingw32/bin/i386-mingw32-windres" SDL_CONFIG="$HOME/sdl-win32/SDL-1.2.13/bin/sdl-config"' \
+ win 'fteqcc.exe:Xonotic/fteqcc/fteqcc.exe' \
+ debug 'darkplaces.exe:xonotic.exe darkplaces-sdl.exe:xonotic-sdl.exe darkplaces-dedicated.exe:xonotic-dedicated.exe'
+ ;;
+ release-engine-osx)
+ rsync --exclude=.git -vaSHPAX Xonotic/misc/buildfiles/osx/* Xonotic/
+ "$SELF" release-compile osx \
+ 'CC="gcc -g -arch i386 -arch ppc -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5"' \
+ all 'fteqcc.bin:Xonotic/fteqcc/fteqcc.osx' \
+ sdl-debug 'darkplaces-sdl:Xonotic/Xonotic-SDL.app/Contents/MacOS/xonotic-osx-sdl-bin'
+ ;;
+ release-engine-linux32)
+ "$SELF" release-compile linux32 \
+ 'CC="gcc -g -Wl,--hash-style=sysv" DP_MODPLUG_STATIC_LIBDIR=$HOME/modplug-i386/lib DP_LINK_TO_LIBJPEG=1 LDFLAGS_LIBJPEG="$HOME/jpeg7/lib/libjpeg.a" CFLAGS_LIBJPEG="-I$HOME/jpeg7/include"' \
+ all 'fteqcc.bin:Xonotic/fteqcc/fteqcc.linux32' \
+ debug 'darkplaces-glx:Xonotic/xonotic-linux-linux32-glx darkplaces-sdl:Xonotic/xonotic-linux-linux32-sdl darkplaces-dedicated:Xonotic/xonotic-linux-linux32-dedicated'
+ ;;
+ release-engine-linux64)
+ "$SELF" release-compile linux64 \
+ 'CC="gcc -g -Wl,--hash-style=sysv" DP_MODPLUG_STATIC_LIBDIR=$HOME/modplug-x86_64/lib DP_LINK_TO_LIBJPEG=1 LDFLAGS_LIBJPEG="$HOME/jpeg7/lib/libjpeg.a" CFLAGS_LIBJPEG="-I$HOME/jpeg7/include"' \
+ all 'fteqcc.bin:Xonotic/fteqcc/fteqcc.linux64' \
+ debug 'darkplaces-glx:Xonotic/xonotic-linux-linux64-glx darkplaces-sdl:Xonotic/xonotic-linux-linux64-sdl darkplaces-dedicated:Xonotic/xonotic-linux-linux64-dedicated'
+ ;;
+ release-engine)
+ "$SELF" release-engine-win32
+ "$SELF" release-engine-osx
+ "$SELF" release-engine-linux32
+ "$SELF" release-engine-linux64
;;
release-maps)
"$SELF" update-maps
+ for X in data/*-????????????????????????????????????????-????????????????????????????????????????.pk3; do
+ if [ -f "$X" ]; then
+ cd Xonotic/data/xonotic-maps.pk3dir
+ unzip ../../../"$X"
+ cd ../../..
+ fi
+ done
;;
release-finish)
+ # version numnber and stuff like that
+ ;;
+ release-buildpk3-transform-raw)
+ dir=$1
+ ;;
+ release-buildpk3-transform-normal)
+ dir=$1
+ cd "$dir"
+ # texture: convert to jpeg and dds
+ export do_jpeg=true
+ export jpeg_qual_rgb=95
+ export jpeg_qual_a=99
+ export do_dds=true
+ export dds_flags=
+ export do_ogg=false
+ find textures -type f -print0 | xargs -0 "$d0"/misc/tools/cached-converter.sh
+ ;;
+ release-buildpk3-transform-low)
+ dir=$1
+ cd "$dir"
+ # texture: convert to jpeg and dds
+ # music: reduce bitrate
+ export do_jpeg=true
+ export jpeg_qual_rgb=95
+ export jpeg_qual_a=99
+ export do_dds=false
+ export do_ogg=true
+ export ogg_qual=1
+ find textures sound/cdtracks -type f -print0 | xargs -0 "$d0"/misc/tools/cached-converter.sh
+ ;;
+ release-buildpk3)
+ src=$1
+ dst=$2
+ transform=$3
+ case "$dst" in
+ /*)
+ ;;
+ */)
+ dst="$PWD/$dst"
+ ;;
+ esac
+ rm -rf Xonotic/temp
+ rsync --exclude=.git -vaSHPAX "$src"/ "Xonotic/temp"
+ "$SELF" release-buildpk3-transform-$transform "Xonotic/temp"
+ cd Xonotic/temp
+ zip -9r "../../$dst" . ########### 7za a -tzip -mx=9 "../../$dst" .
+ cd ../..
+ rm -rf Xonotic/temp
+ ;;
+ release-buildpk3s)
+ src=$1
+ shift
+ while [ "$#" -gt 1 ]; do
+ "$SELF" release-buildpk3 "$src" "Xonotic/${src%.pk3dir}$2.pk3" "$1"
+ shift
+ shift
+ done
+ ;;
+ release-pack)
+ "$SELF" release-buildpk3s data/font-dejavu.pk3dir raw ''
+ "$SELF" release-buildpk3s data/xonotic-data.pk3dir normal '' raw '-raw' low '-low'
+ "$SELF" release-buildpk3s data/xonotic-maps.pk3dir normal '' raw '-raw' low '-low'
+ "$SELF" release-buildpk3s data/xonotic-music.pk3dir normal '' raw '-raw' low '-low'
+ "$SELF" release-buildpk3s data/xonotic-nexcompat.pk3dir low ''
;;
release)
"$SELF" release-prepare
- "$SELF" release-engine
- "$SELF" release-gamedata
"$SELF" release-maps
"$SELF" release-finish
"$SELF" release-pack
+ "$SELF" release-engine
;;
-
*)
echo "Usage:"
echo " $SELF pull"