1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
# vim:set ft=sh:
SHORTNAME=lgeneral
LONGNAME="LGeneral"
TGZSUM=40c4be23f60d1dc732aabe13b58fc5e3
lgeneral_usage() {
echo "game-data-packager ${SHORTNAME} arguments:"
printf "\tgame-data-packager ${SHORTNAME} [ -f path ] | [ -w ]
\t\t-f file\t\tpath to your tar.gz compressed Panzer General DAT directory\n\
\t\t-w\t\tfetch compressed pg-data.tar.gz from the web\n"
}
verify_args() {
case $# in
0)
lgeneral_usage
exit 0
;;
1)
if [ "$1" != "-w" ]; then
usage >&2
lgeneral_usage >&2
exit 1
fi
downloadtgz
;;
2)
if [ "$1" != "-f" ]; then
usage >&2
lgeneral_usage >&2
exit 1
fi
downloaded=false
lgeneraltgz="$2"
;;
*)
usage >&2
lgeneral_usage >&2
exit 1
;;
esac
}
lgeneralmirrors=$LIBDIR/lgeneral-mirrors
downloadtgz() {
dest="$WORKDIR/pg-data.tar.gz"
mirror=$(grep -v ^# "$lgeneralmirrors" | sort -R | head -n1)
for try in $mirror; do
if wget --progress=dot --directory-prefix "$WORKDIR" -c "$try"
then
lgeneraltgz="$dest"
downloaded=true
return
fi
done
die "error: could not find pg-data.tar.gz at our chosen mirror"
}
DEBBASE="lgeneral-data-nonfree_${GAME_PACKAGE_VERSION}_all.deb"
DEB="$DATADIR/$DEBBASE"
go() {
verify_args "$@"
require_program lgc-pg lgc-pg
TGZFILE=`unravel "$lgeneraltgz"`
verify_file "$TGZFILE"
verify_md5sum_alternatives "$TGZFILE" "$TGZSUM" \
"warning: checksum is not what we expected"
OUTFILE=`unravel "$OUTDIR"`"/$DEBBASE"
cp -p "$DEB" "$OUTFILE"
oldpwd=`pwd`
cd "$WORKDIR"
# create directory structure required by lgc-pg
mkdir -p lgeneral/gfx/flags \
lgeneral/gfx/terrain \
lgeneral/gfx/units \
lgeneral/maps/pg \
lgeneral/nations \
lgeneral/scenarios/pg \
lgeneral/sounds/pg \
lgeneral/units
# extract pg-data and convert to lgeneral's native file format
tar xfz "$TGZFILE"
lgc-pg -s pg-data/ -d lgeneral/
slipstream_dir "$OUTFILE" "usr/share/games/" "lgeneral/"
if [ "$downloaded" = "true" ]; then
rm "$TGZFILE"
rm -rf pg-data/
rm -rf lgeneral/
elif [ "$downloaded" = "false" ]; then
rm -rf pg-data/
rm -rf lgeneral/
fi
cd "$oldpwd"
}
|