#!/bin/bash

if [ -z "$1" ]
then
  echo "Usage: $(basename $0) search-string"
  exit
fi

DIRECTORY=$HOME/CSV/$1/$(date +%Y%m%d-%H%M)/
BACKUP_DIR=$HOME/palm/backup/
FSEP='%%'

mkdir -p "$DIRECTORY"

echo "Erzeuge CSV-Dateien (Codierung = ISO-8859)
mit Feldnamen in der ersten Zeile
und Daten in den darauffolgenden Zeilen."

n=0

for X in $( ls $BACKUP_DIR | grep "$1" ); do
   let n+=1
   CSVTEMP="$DIRECTORY""$(echo "$X" | sed 's/.pdb$/.CSV/')"
   CSVFILE="$DIRECTORY""$(echo "$X" | sed 's/.pdb$/.csv/')"
   IFO="$DIRECTORY""$(echo "$X" | sed 's/.pdb$/.ifo/')"
   ERROR_FILE="$DIRECTORY""$(echo "$X" | sed 's/.pdb$/_error.txt/')"

   # built csv-file and ifo-file
   pdb2csv -s "$FSEP" -d "%Y/%m/%d" -n "$ERROR_FILE" "$BACKUP_DIR""$X" "$CSVTEMP" "$IFO"

   # put field-names in the first line (change newline from the $IFO-file into "$FSEP")
   # last $FSEP on line to newline
   awk '{FS = "\""; ORS = "'$FSEP'"} /^field/ {print $2}' $IFO | sed "s/"$FSEP"$/\n/" > $CSVFILE

   # Daten von unnoetigen Steuerzeichen reinigen und anhaengen
   #(Bug in Pilot-DB? - Felder mit calculateten Werten haben als Anhang unsinnigerweise "N/A"
   #sed 's/N\/A//g;s/\"'$FSEP'\"/'$FSEP'/g' $CSVTEMP >> $CSVFILE
   awk '
   {gsub(/N\/A/, "");
   gsub(/"'$FSEP'"/, "'$FSEP'");
   gsub(/'$FSEP'"/, "'$FSEP'");
   gsub(/"'$FSEP'/, "'$FSEP'");
   gsub(/^"/, "");
   gsub(/"$/, "");
   print}
   ' $CSVTEMP >> $CSVFILE

   rm $CSVTEMP
   echo -n =
done

find $DIRECTORY -empty -exec rm {} \;

echo "
$n CSV-Dateien und $n IFO-Dateien
in $DIRECTORY geschrieben."
exit