diff --git a/scripts/convert_latest.sh b/scripts/convert_latest.sh new file mode 100755 index 0000000..3f03f30 --- /dev/null +++ b/scripts/convert_latest.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +MAPSERVER='https://lifomaps.de' +TILESERVER="notsyncing.net:/srv/http/maps.linux-forks.de/tiles/" +OUTDIR=`pwd`/out +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" + +FILE=`curl "$MAPSERVER" | sed -n 's/.*>\(world-[0-9\-]\+\.png\).*/\1/p' | tail -n 1` + +if [[ "$FILE" == "" ]]; then + echo "ERROR: Could not detect latest map file." + exit +fi + +if [[ -f "$OUTDIR/uploaded" ]]; then + echo "INFO: Latest map has already been converted." + exit +fi + +REMOTE_URL="$MAPSERVER/$FILE" +LOCAL_URL="$OUTDIR/$FILE" +MAPNAME=`echo $LOCAL_URL | sed 's/.*\/\([^\.]\+\).*/\1/g'` + +echo "# Downloading and converting $MAPNAME." + +mkdir -p $OUTDIR +cd $OUTDIR + +if [ ! -f "$OUTDIR/converted" ]; then + echo "Downloading latest map file..." + curl -C - "$REMOTE_URL" -o "$LOCAL_URL" + + echo "Resizing map..." + OSIZE=`file $LOCAL_URL | sed -n 's/.*PNG image data, \([0-9]\+\).*/\1/p'` + NSIZE=$((2**6 * 256)) + RESIZED_URL="$LOCAL_URL-resized.png" + convert $LOCAL_URL -extent ${NSIZE}x${NSIZE} -gravity NorthWest $RESIZED_URL + + echo "Converting map..." + $SCRIPT_DIR/convert_maps.sh $MAPNAME $RESIZED_URL + + echo "" > $OUTDIR/converted +fi + +echo "Uploading files..." + +scp -r $OUTDIR/$MAPNAME $TILESERVER +echo "" > $OUTDIR/uploaded + +echo "Cleaning up..." +read +rm $RESIZED_URL +Rm $LOCAL_URL diff --git a/scripts/convert_maps.sh b/scripts/convert_maps.sh index faeea22..16bfe9f 100755 --- a/scripts/convert_maps.sh +++ b/scripts/convert_maps.sh @@ -11,8 +11,8 @@ # `convert $MAPFILE -extent ${crop}x${crop} -gravity NorthWest $MAPFILE.scaled.png` TILESIZE=256 -MAPNAME="world-2020-04-09" -MAPFILE="../$MAPNAME.png" +MAPNAME="$1" +MAPFILE="$2" width=`file "$MAPFILE" | sed -n "s/.* \([0-9]\+\) x \([0-9]\+\).*/\1/p"` crop=$TILESIZE