wesnoth/data/tools/unit_tree/update-wmlunits
Gunter Labes 03b6ad568c
Continue if there is an old executable
Chances are that the previous build works just as well.
We just need it for config file parsing which does not change often.
2018-01-12 19:14:41 +01:00

61 lines
1.9 KiB
Bash
Executable file

#!/bin/bash
# script running on the wesnoth server to update units.wesnoth.org
set -e -u
# set them in the environment
# VERSION=1.12
# PORT=1.12.x
# must run from the correct directory
dir="$(dirname "$0")"
EXTRA_ADDON_OPTIONS=${EXTRA_ADDON_OPTIONS:-}
EXTRA_WMLUNITS_OPTIONS=${EXTRA_WMLUNITS_OPTIONS:-}
TIMEOUT=${TIMEOUT:-20}
SOURCES=${SOURCES:-/usr/src/wesnoth}
addons=$dir/addons
exe=$dir/wesnoth
config=$dir/config
src=$SOURCES/$VERSION
data=$src
log=$dir/logs
tmpout=$dir/output
OUT=${OUT:-"/srv/www/html/units/$VERSION"}
trans=$dir/translations
build=$dir/build
# always using the master version
TOOLS=${TOOLS:-$SOURCES/master/data/tools}
export TEMP=$dir/temp
# in case there's leftovers from a previous run
rm -rf "$config/data/add-ons"
rm -rf "$tmpout"
rm -rf "$TEMP"
mkdir -p "$config/data/add-ons"
mkdir -p "$addons"
mkdir -p "$log"
mkdir -p "$tmpout"
mkdir -p "$TEMP"
mkdir -p "$trans"
# we only need the parser, but have to build the game executable for that
echo BUILDING
cd "$dir" || exit # the scons build places the wesnoth executable in the current directory
# continue on failure if there is an executable from a previous build
TRAVIS=1 TRAVIS_OS_NAME=Linux scons -Y "$src" --option-cache="$build/.scons-option-cache" || [ -x wesnoth ]
# later can just rebuild updated campaigns, but for now rebuild everything
rm -f "$dir/overview.txt"
echo DOWNLOADING
"$TOOLS/wesnoth_addon_manager" -p "$PORT" -d '.*' -c "$addons" $EXTRA_ADDON_OPTIONS > "$log/wesnoth_addon_manager.txt" 2>&1
echo WORKING
python3 -u "$TOOLS/wmlunits" -t "$trans" -D "$data" -o "$tmpout" -w "$exe" \
-C "$config" -a "$addons" -L "$dir/overview.txt" -B "$dir/overview.txt" \
-T "$TIMEOUT" $EXTRA_WMLUNITS_OPTIONS > "$log/wmlunits.txt" 2>&1
test -f "$tmpout"/mainline/en_US/mainline.html
test -f "$tmpout"/'pics/core$images$units$woses$wose.png'
rsync -vaz --delete "$tmpout/" "$OUT" > "$log/rsync.txt" 2>&1
rm -rf "$TEMP"
rm -rf "$tmpout"