summaryrefslogtreecommitdiff
path: root/scripts/convert_latest.sh
blob: 8e9bd42dd86012bbf4183d3c65397eb59db0847a (plain)
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
#!/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