X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=download-gamepacks.sh;h=f31c5443561df176a8b667d0448bd5ef43562221;hb=98da1e8a2e2bdc917376d2fe802e4f09a6241d23;hp=710dc02100adc8f786f418ee6b86498f028790f0;hpb=32dcbf7747741ca361e07a4538fd2d886f956370;p=xonotic%2Fnetradiant.git diff --git a/download-gamepacks.sh b/download-gamepacks.sh old mode 100644 new mode 100755 index 710dc021..f31c5443 --- a/download-gamepacks.sh +++ b/download-gamepacks.sh @@ -4,8 +4,26 @@ # 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 @@ -14,39 +32,51 @@ 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 -rf zipdownload - mkdir zipdownload + $RM_R zipdownload + $MKDIR zipdownload cd zipdownload - wget "$source" "$@" - unzip * + $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 .. - rm -rf "games/$pack" - mkdir "games/$pack" - mv zipdownload/*/* "games/$pack/" - rm -rf zipdownload + ;; + 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 @@ -56,14 +86,14 @@ pack() *" $license "*) ;; *) - echo "Pack $pack rejected because its license is not in LICENSEFILTER." + $ECHO "Pack $pack rejected because its license is not in LICENSEFILTER." return ;; 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*) @@ -79,33 +109,54 @@ 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 -rf zipdownload - mkdir zipdownload + $RM_R zipdownload + $MKDIR zipdownload cd zipdownload - wget "$source" "$@" - unzip * + $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 .. - mkdir "games/$pack" - mv zipdownload/*/* "games/$pack/" - rm -rf zipdownload ;; 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 svn svn://svn.icculus.org/nexuiz/trunk/misc/netradiant-NexuizPack -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 http://opensvn.csie.org/warsowgamepack/netradiant/games/WarsowPack/ +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 OsirionPack GPL zip1 http://ingar.satgnu.net/files/gtkradiant/gamepacks/OsirionPack.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 WarsowPack GPL zip1 http://ingar.satgnu.net/files/gtkradiant/gamepacks/WarsowPack.zip +pack XonoticPack GPL git git://git.xonotic.org/xonotic/netradiant-xonoticpack.git