exit 1
;;
esac
+pushbase=`git config remote.origin.pushurl || true`
+case "$pushbase" in
+ */xonotic.git)
+ pushbase=${pushbase%xonotic.git}
+ ;;
+ '')
+ ;;
+ *)
+ echo "The main repo is not xonotic.git, what have you done?"
+ exit 1
+ ;;
+esac
repourl()
{
fi
}
+repopushurl()
+{
+ [ -n "$pushbase" ] || return 0
+ repo_t=`echo "$repos_urls" | grep "^$1 " | cut -d '|' -f 2 | tr -d ' '`
+ if [ -n "$repo_t" ]; then
+ case "$repo_t" in
+ *://*)
+ ;;
+ *)
+ echo "$pushbase$repo_t"
+ ;;
+ esac
+ else
+ if [ x"$1" = x"." ]; then
+ echo "$pushbase""xonotic.git"
+ else
+ echo "$pushbase${1##*/}.git"
+ fi
+ fi
+}
+
repobranch()
{
repo_t=`echo "$repos_urls" | grep "^$1 " | cut -d '|' -f 3 | tr -d ' '`
fix_git_config()
{
+ verbose git config remote.origin.url "$1"
+ if [ -n "$2" ]; then
+ verbose git config remote.origin.pushurl "$2"
+ else
+ verbose git config --unset remote.origin.pushurl || true
+ fi
+ verbose git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
verbose git config core.autocrlf input
if [ -z "`git config push.default`" ]; then
verbose git config push.default current # or is tracking better?
verbose fix_upstream_rebase_mergefail && verbose fix_upstream_rebase_mergeok
done
;;
+ fix_config)
+ for d in $repos; do
+ url=`repourl "$d"`
+ pushurl=`repopushurl "$d"`
+ branch=`repobranch "$d"`
+ if [ -d "$d0/$d" ]; then
+ verbose cd "$d0/$d"
+ fix_git_config "$url" "$pushurl"
+ cd "$d0"
+ fi
+ done
+ ;;
update|pull)
allow_pull=true
if [ x"$1" = x"-N" ]; then
allow_pull=false
fi
+ if $allow_pull; then
+ "$SELF" fix_config
+ fi
for d in $repos; do
url=`repourl "$d"`
+ pushurl=`repopushurl "$d"`
branch=`repobranch "$d"`
if [ -d "$d0/$d" ]; then
if $allow_pull; then
enter "$d0/$d" verbose
- fix_git_config
- verbose git config remote.origin.url "$url"
- verbose git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
r=`git symbolic-ref HEAD`
r=${r#refs/heads/}
if git config branch.$r.remote >/dev/null 2>&1; then
else
verbose git clone "$url" "$d0/$d"
enter "$d0/$d" verbose
- fix_git_config
+ fix_git_config "$url" "$pushurl"
if [ "$branch" != "master" ]; then
verbose git checkout --track -b "$branch" origin/"$branch"
fi
done
;;
compile)
+ cleandp=false
+ cleanqcc=false
+ cleanqc=false
+ debug=debug
+ while :; do
+ case "$1" in
+ -c)
+ cleandp=true
+ cleanqcc=true
+ cleanqc=true
+ shift
+ ;;
+ -r)
+ debug=release
+ shift
+ ;;
+ *)
+ break
+ ;;
+ esac
+ done
if [ -z "$CC" ]; then
- export CC="gcc -DSUPPORT_IPV6"
+ export CC="gcc -DSUPPORTIPV6"
fi
if [ -n "$WE_HATE_OUR_USERS" ]; then
- TARGETS="sv-debug cl-debug"
+ TARGETS="sv-$debug cl-$debug"
elif [ x"`uname`" = x"Darwin" ]; then
case "`uname -r`" in
?.*)
- TARGETS="sv-debug cl-debug sdl-debug"
+ TARGETS="sv-$debug cl-$debug sdl-$debug"
;;
*)
# AGL cannot be compiled on systems with a kernel > 10.x (Snow Leopard)
- TARGETS="sv-debug sdl-debug"
+ TARGETS="sv-$debug sdl-$debug"
;;
esac
export CC="$CC -I$PWD/misc/buildfiles/osx/Xonotic-SDL.app/Contents/Frameworks/SDL.framework/Headers -F$PWD/misc/buildfiles/osx/Xonotic-SDL.app/Contents/Frameworks"
else
- TARGETS="sv-debug cl-debug sdl-debug"
+ TARGETS="sv-$debug cl-$debug sdl-$debug"
fi
- case "$1" in
- -c)
- cleandp=true
- cleanqcc=true
- cleanqc=true
- shift
- ;;
- *)
- cleandp=false
- cleanqcc=false
- cleanqc=false
- ;;
- esac
if [ $# -gt 0 ] && [ x"$1" = x"" ]; then
# if we give the command make the arg "", it will surely fail (invalid filename),
# so better handle it as an empty client option
echo "$report" | ssh nexuiz@rm.endoftheinternet.org cat '>>' public_html/xonotic-merge-notes.txt
;;
clean)
+ "$SELF" fix_config
+ "$SELF" update -N
force=false
gotoupstream=false
fetchupstream=false
verbose git branch -D "${B#refs/heads/}"
fi
done
+ verbose git branch -t master origin/master || true
+ verbose git branch -t "`repobranch "$d"`" origin/"`repobranch "$d"`" || true
fi
done
;;