X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fnetradiant.git;a=blobdiff_plain;f=download-gamepacks.sh;h=32586dad924292186e54c428726ec790e86d879b;hp=89cfe0c6914e49e0cbec86dcd1519b0c44aa193c;hb=e0b3d0ac5abc0cde0a74fadbd2aa4739b43b24a3;hpb=b098b602655625758f33ac1ed166d3e5f4a3bcdb diff --git a/download-gamepacks.sh b/download-gamepacks.sh old mode 100644 new mode 100755 index 89cfe0c6..32586dad --- a/download-gamepacks.sh +++ b/download-gamepacks.sh @@ -2,7 +2,27 @@ # Usage: # sh download-gamepack.sh -# LICENSEFILTER=GPL BATCH=1 sh download-gamepack.sh +# LICENSEFILTER=GPL,BSD 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() { @@ -12,44 +32,69 @@ pack() source=$1; shift if [ -d "games/$pack" ]; then - echo "Updating $pack..." + $ECHO "Updating $pack..." case "$sourcetype" in svn) - svn update "games/$pack" "$@" + $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 + $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." + $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 + if ! echo "$LICENSEFILTER" | tr ',' '\n' | grep -F -q -x "$license" + then + $ECHO "Pack $pack rejected because its license is not in LICENSEFILTER." + return + fi ;; esac case "$BATCH" in '') while :; do - echo "Download this pack? (y/n)" + $ECHO "Download this pack? (y/n)" read -r P case "$P" in y*) @@ -65,18 +110,56 @@ pack() ;; esac - echo "Downloading $pack..." + $ECHO "Downloading $pack..." case "$sourcetype" in svn) - svn checkout "$source" "games/$pack" "$@" + $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 NexuizPack GPL svn svn://svn.icculus.org/nexuiz/trunk/misc/netradiant-NexuizPack -pack Quake2WorldPack GPL svn svn://jdolan.dyndns.org/quake2world/trunk/gtkradiant -pack DarkPlacesPack GPL svn https://zerowing.idsoftware.com/svn/radiant.gamepacks/DarkPlacesPack/branches/1.5/ -pack WarsowPack GPL svn http://opensvn.csie.org/warsowgamepack/netradiant/games/WarsowPack/ -pack Q3Pack proprietary svn https://zerowing.idsoftware.com/svn/radiant.gamepacks/Q3Pack/trunk/ -r29 -pack UFOAIPack proprietary svn https://zerowing.idsoftware.com/svn/radiant.gamepacks/UFOAIPack/branches/1.5/ +pack DarkPlacesPack GPL svn svn://svn.icculus.org/gtkradiant-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/netradiant/gamepacks/OpenArenaPack.zip +pack OsirionPack GPL zip1 http://ingar.satgnu.net/files/netradiant/gamepacks/OsirionPack.zip +pack Q3Pack proprietary svn svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/ -r29 +pack Quake2Pack proprietary zip1 http://ingar.satgnu.net/files/netradiant/gamepacks/Quake2Pack.zip +pack QuakePack GPL zip1 http://ingar.satgnu.net/files/netradiant/gamepacks/Quake1Pack.zip +pack QuetooPack GPL svn svn://svn.icculus.org/gtkradiant-gamepacks/QuetooPack/branches/1.5/ +pack TremulousPack proprietary zip1 http://ingar.satgnu.net/files/netradiant/gamepacks/TremulousPack.zip +pack UFOAIPack proprietary svn svn://svn.icculus.org/gtkradiant-gamepacks/UFOAIPack/branches/1.5/ +#pack WarsowPack GPL svn https://svn.bountysource.com/wswpack/trunk/netradiant/games/WarsowPack/ +#pack WarsowPack GPL zip1 http://ingar.satgnu.net/files/netradiant/gamepacks/WarsowPack.zip +pack WarsowPack GPL git https://github.com/Warsow/NetRadiantPack.git +pack XonoticPack GPL git https://gitlab.com/xonotic/netradiant-xonoticpack.git +pack UnvanquishedPack BSD svn https://github.com/Unvanquished/unvanquished-mapeditor-support.git/trunk/build/netradiant