]> de.git.xonotic.org Git - voretournament/voretournament.git/blobdiff - misc/mediasource/netradiant-src/download-gamepacks.sh
Move the netradiant and fteqcc sources
[voretournament/voretournament.git] / misc / mediasource / netradiant-src / download-gamepacks.sh
diff --git a/misc/mediasource/netradiant-src/download-gamepacks.sh b/misc/mediasource/netradiant-src/download-gamepacks.sh
new file mode 100644 (file)
index 0000000..2d6c1b7
--- /dev/null
@@ -0,0 +1,160 @@
+#!/bin/sh
+
+# Usage:
+#   sh download-gamepack.sh
+#   LICENSEFILTER=GPL BATCH=1 sh download-gamepack.sh
+
+: ${GIT:=git}
+: ${SVN:=svn}
+: ${WGET:=wget}
+: ${ECHO:=echo}
+: ${MKDIR:=mkdir}
+: ${RM_R:=rm -f -r}
+: ${MV:=mv}
+: ${UNZIPPER:=unzip}
+
+set -e
+
+extra_urls()
+{
+       if [ -f "$1/extra-urls.txt" ]; then
+               while IFS="     " read -r FILE URL; do
+                       $WGET -O "$1/$FILE" "$URL"
+               done < "$1/extra-urls.txt"
+       fi
+}
+
+pack()
+{
+       pack=$1; shift
+       license=$1; shift
+       sourcetype=$1; shift
+       source=$1; shift
+
+       if [ -d "games/$pack" ]; then
+               $ECHO "Updating $pack..."
+               case "$sourcetype" in
+                       svn)
+                               $SVN update "games/$pack" "$@" || true
+                               ;;
+                       zip1)
+                               $RM_R zipdownload
+                               $MKDIR zipdownload
+                               cd zipdownload
+                               $WGET "$source" "$@" || true
+                               $UNZIPPER *.zip || true
+                               cd ..
+                               $RM_R "games/$pack"
+                               $MKDIR "games/$pack"
+                               $MV zipdownload/*/* "games/$pack/" || true
+                               $RM_R zipdownload
+                               ;;
+                       gitdir)
+                               $RM_R "games/$pack"
+                               cd games
+                               $GIT archive --remote="$source" --prefix="$pack/" "$2":"$1" | tar xvf - || true
+                               cd ..
+                               ;;
+                       git)
+                               cd "games/$pack"
+                               $GIT pull || true
+                               cd ../..
+                               ;;
+               esac
+               extra_urls "games/$pack"
+               return
+       fi
+
+       $ECHO
+       $ECHO "Available pack: $pack"
+       $ECHO "  License: $license"
+       $ECHO "  Download via $sourcetype from $source"
+       $ECHO
+       case " $PACKFILTER " in
+               "  ")
+                       ;;
+               *" $pack "*)
+                       ;;
+               *)
+                       $ECHO "Pack $pack rejected because it is not in PACKFILTER."
+                       return
+                       ;;
+       esac
+       case " $LICENSEFILTER " in
+               "  ")
+                       ;;
+               *" $license "*)
+                       ;;
+               *)
+                       $ECHO "Pack $pack rejected because its license is not in LICENSEFILTER."
+                       return
+                       ;;
+       esac
+       case "$BATCH" in
+               '')
+                       while :; do
+                               $ECHO "Download this pack? (y/n)"
+                               read -r P
+                               case "$P" in
+                                       y*)
+                                               break
+                                               ;;
+                                       n*)
+                                               return
+                                               ;;
+                               esac
+                       done
+                       ;;
+               *)
+                       ;;
+       esac
+       
+       $ECHO "Downloading $pack..."
+       case "$sourcetype" in
+               svn)
+                       $SVN checkout "$source" "games/$pack" "$@" || true
+                       ;;
+               zip1)
+                       $RM_R zipdownload
+                       $MKDIR zipdownload
+                       cd zipdownload
+                       $WGET "$source" "$@" || true
+                       $UNZIPPER *.zip || true
+                       cd ..
+                       $MKDIR "games/$pack"
+                       $MV zipdownload/*/* "games/$pack/" || true
+                       $RM_R zipdownload
+                       ;;
+               gitdir)
+                       cd games
+                       $GIT archive --remote="$source" --prefix="$pack/" "$2":"$1" | tar xvf - || true
+                       cd ..
+                       ;;
+               git)
+                       cd games
+                       $GIT clone "$source" "$pack" || true
+                       cd ..
+                       ;;
+       esac
+       extra_urls "games/$pack"
+       good=false
+       for D in "games/$pack"/*.game; do
+               if [ -d "$D" ]; then
+                       good=true
+               fi
+       done
+       $good || rm -rf "$D"
+}
+
+mkdir -p games
+pack DarkPlacesPack  GPL         svn    https://zerowing.idsoftware.com/svn/radiant.gamepacks/DarkPlacesPack/branches/1.5/
+pack NexuizPack      GPL         gitdir git://git.icculus.org/divverent/nexuiz.git misc/netradiant-NexuizPack master
+pack OpenArenaPack   unknown     zip1   http://ingar.satgnu.net/files/gtkradiant/gamepacks/OpenArenaPack.zip
+pack Q3Pack          proprietary svn    https://zerowing.idsoftware.com/svn/radiant.gamepacks/Q3Pack/trunk/ -r29
+pack Quake2Pack      proprietary zip1   http://ingar.satgnu.net/files/gtkradiant/gamepacks/Quake2Pack.zip
+pack Quake2WorldPack GPL         svn    svn://jdolan.dyndns.org/quake2world/trunk/gtkradiant
+pack QuakePack       proprietary zip1   http://ingar.satgnu.net/files/gtkradiant/gamepacks/QuakePack.zip
+pack TremulousPack   proprietary zip1   http://ingar.satgnu.net/files/gtkradiant/gamepacks/TremulousPack.zip
+pack UFOAIPack       proprietary svn    https://zerowing.idsoftware.com/svn/radiant.gamepacks/UFOAIPack/branches/1.5/
+pack WarsowPack      GPL         svn    https://svn.bountysource.com/wswpack/trunk/netradiant/games/WarsowPack/
+pack XonoticPack     GPL         git    git://git.xonotic.org/xonotic/netradiant-xonoticpack.git