Files
osm-scripts/scripts/calculateProgress.sh
2017-08-17 10:38:51 +02:00

57 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
function printUsage() {
echo "Please provide a valid level number";
echo "usage $o <level>"
exit 1
}
min_number() {
printf "%s\n" "$@" | sort -g | head -n1
}
level=$1
if [ -z "$1" ]; then
printUsage
fi
level=$1
if [ ! -d "/home/osm/tiles/$level" ]; then
printUsage
fi
#echo level=$level
level100=$((4**$level))
#echo level100=$level100
previousLevel=$(($level-1))
if [ ! -d "/home/osm/tiles/$previousLevel" ]; then
printUsage
fi
#echo previousLevel=$previousLevel
previousLevel100=$((4**$previousLevel))
#echo previousLevel100=$previousLevel100
# calculate tiles rendered in previousLevel
find /home/osm/tiles/$previousLevel/ -name "*.png" > /tmp/files.txt
read previousLevelTiles fileName <<< $(wc -l /tmp/files.txt)
#echo previousLevelTiles=$previousLevelTiles
# calculate files rendered in current level
find /home/osm/tiles/$level/ -name "*.png" > /tmp/files.txt
read levelTiles fileName <<< $(wc -l /tmp/files.txt)
#echo levelTiles=$levelTiles
# calculate progress
percentageRequired=$(echo "scale=5;$previousLevelTiles / $previousLevel100" | bc)
#echo percentageRequired=$percentageRequired
percentageRequired="$(min_number $percentageRequired 1)"
#echo percentageRequired=$percentageRequired
levelTarget=$(echo "$level100 * $percentageRequired" | bc)
#echo levelTarget=$levelTarget
levelCalculated=$(echo "scale=4;($levelTiles / $levelTarget)" | bc)
#echo levelCalculated=$levelCalculated
progress=$(echo "scale=2;($levelCalculated*100)/1" | bc)
progress="$(min_number $progress 100)"
echo progress=$progress%