netradiant-custom/download-gamepacks.sh
2010-04-12 08:00:39 +02:00

145 lines
3.3 KiB
Bash
Executable File

#!/bin/sh
# Usage:
# sh download-gamepack.sh
# LICENSEFILTER=GPL BATCH=1 sh download-gamepack.sh
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" "$@"
;;
zip1)
rm -rf zipdownload
mkdir zipdownload
cd zipdownload
wget "$source" "$@"
unzip *
cd ..
rm -rf "games/$pack"
mkdir "games/$pack"
mv zipdownload/*/* "games/$pack/"
rm -rf zipdownload
;;
gitdir)
rm -rf "games/$pack"
cd games
git archive --remote="$source" --prefix="$pack/" "$2":"$1" | tar xvf -
cd ..
;;
git)
cd "games/$pack"
git pull
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" "$@"
;;
zip1)
rm -rf zipdownload
mkdir zipdownload
cd zipdownload
wget "$source" "$@"
unzip *
cd ..
mkdir "games/$pack"
mv zipdownload/*/* "games/$pack/"
rm -rf zipdownload
;;
gitdir)
cd games
git archive --remote="$source" --prefix="$pack/" "$2":"$1" | tar xvf -
cd ..
;;
git)
cd games
git clone "$source" "$pack"
cd ..
;;
esac
extra_urls "games/$pack"
}
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 http://opensvn.csie.org/warsowgamepack/netradiant/games/WarsowPack/
pack XonoticPack GPL git git://git.xonotic.org/xonotic/netradiant-xonoticpack.git