115 lines
2.2 KiB
Bash
115 lines
2.2 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
set -x
|
||
|
|
||
|
export YYYYMMDD="$(date -u +%Y-%m-%d)"
|
||
|
export CONTINENTS="
|
||
|
europe
|
||
|
northamerica
|
||
|
southamerica
|
||
|
centralamerica
|
||
|
asia
|
||
|
africa
|
||
|
oceania
|
||
|
antarctica
|
||
|
world
|
||
|
voice
|
||
|
"
|
||
|
|
||
|
#https://download.osmand.net/download?standard=yes&file=$FN
|
||
|
|
||
|
#https://download.osmand.net/indexes.php
|
||
|
|
||
|
function fetchContinent() {
|
||
|
CONTINENT="$1"
|
||
|
cd /work/download
|
||
|
if [[ ! -d ./$CONTINENT ]]; then
|
||
|
mkdir $CONTINENT
|
||
|
fi
|
||
|
cd $CONTINENT
|
||
|
FILES="$(grep -i $CONTINENT ../listing.txt)"
|
||
|
|
||
|
for FILE in $FILES ; do
|
||
|
URL="https://download.osmand.net/download?standard=yes&file=$FILE"
|
||
|
if [[ ! -e "$FILE" ]]; then
|
||
|
echo "file $FILE is missing, downloading"
|
||
|
wget --progress=dot:giga --report-speed=bits \
|
||
|
-O "$FILE.tmp" \
|
||
|
-c \
|
||
|
"$URL" && mv "$FILE.tmp" "$FILE"
|
||
|
rm *.tmp
|
||
|
fi
|
||
|
ls -tla
|
||
|
du -sh .
|
||
|
df -h .
|
||
|
done
|
||
|
}
|
||
|
|
||
|
function zipContinent() {
|
||
|
CONTINENT="$1"
|
||
|
cd /work/download
|
||
|
du -sh $CONTINENT
|
||
|
df -h .
|
||
|
cd $CONTINENT
|
||
|
find . -type f -iname '*.zip' -print0 | xargs -0 -n 1 -P 8 unzip
|
||
|
rm -fv *.zip *.tmp
|
||
|
cd ..
|
||
|
zip -9r $YYYYMMDD.$CONTINENT.zip $CONTINENT
|
||
|
rm -rfv $CONTINENT
|
||
|
mv $YYYYMMDD.$CONTINENT.zip /work/webroot
|
||
|
|
||
|
}
|
||
|
|
||
|
function fetch() {
|
||
|
|
||
|
cd /work/download
|
||
|
|
||
|
# srtmf files are 404
|
||
|
curl -sf https://download.osmand.net/indexes.php | tr "\"" "\n" |
|
||
|
tr ">" "\n" | tr "<" "\n" | grep obf.zip |
|
||
|
grep -v "srtmf" | sort > listing.txt
|
||
|
|
||
|
cat > /work/webroot/index.html.new <<EOF
|
||
|
<html>
|
||
|
<head>
|
||
|
<title>files</title>
|
||
|
</head>
|
||
|
<body>
|
||
|
<h1>files</h1>
|
||
|
<ul>
|
||
|
EOF
|
||
|
|
||
|
for CONTINENT in $CONTINENTS; do
|
||
|
if [[ ! -e /work/webroot/$YYYYMMDD.$CONTINENT.zip ]]; then
|
||
|
fetchContinent "$CONTINENT"
|
||
|
zipContinent "$CONTINENT"
|
||
|
fi
|
||
|
|
||
|
cat >> /work/webroot/index.html.new <<EOF
|
||
|
<li>
|
||
|
<a href="/$YYYYMMDD.$CONTINENT.zip">$YYYYMMDD.$CONTINENT.zip</a>
|
||
|
</li>
|
||
|
EOF
|
||
|
|
||
|
|
||
|
done
|
||
|
|
||
|
cat >> /work/webroot/index.html.new <<EOF
|
||
|
</ul>
|
||
|
<pre>
|
||
|
$(date -u)
|
||
|
</pre>
|
||
|
</body>
|
||
|
</html>
|
||
|
EOF
|
||
|
|
||
|
mv /work/webroot/index.html.new /work/webroot/index.html
|
||
|
|
||
|
}
|
||
|
|
||
|
function main() {
|
||
|
fetch
|
||
|
}
|
||
|
|
||
|
main
|