#!/bin/bash
# usage:
#   zipkachelwahl karte.zip auswahlname auswahlbereich.ovl bitmap-extension
#
# kacheln selektiv aus einem ZIP-Kartenarchiv in ein verzeichnis "auswahlname" kopieren
# das anschliessend zu einem ZIP diesen Namens komprimiert wird
#
# die geografischen Bereiche werden durch Flchen bzw. eingrenzende Polygone (auch mehrere)
# im ASCII-OVL-Format gekennzeichnet (Geogrid-Overlay-Format, evtl. mit GPSBabel und csv2ovl konvertieren)
#
# bitmap-extension z.B. bmp, jpg oder gif

if [ $# -ne 4 ]; then
  echo "Syntax:"
  echo "zipkachelwahl karte.zip auswahlname auswahlbereich.ovl bitmap-extension"
  exit
fi

hash unzip

sourcemap=$1
destname=$2
selection=$3
bitmapext=$4

mkdir "$destname"

unzip -p "$sourcemap" \*.kal | kal2selection "$selection" > "$destname/selection-names"

cat "$destname/selection-names" | xargs -I '{}' unzip -j -n "$sourcemap" -d "$destname" '{}'
sed s/.$bitmapext/.kal/g "$destname/selection-names"  | xargs -I '{}' unzip -j -n "$sourcemap" -d "$destname" '{}'

# evtl spter, wenn kal-namen herausgefiltert werden
# kal2mapname < "$destname/selection-names" | unzip -j -n "$sourcemap" -@ -d "$destname"

zip -r -j -0 "$destname.zip" "$destname"
