#!/bin/bash
#
# Initialisierung.
#
# SYNTAX: tw_init

source ${0%/*}/tw_conf

DATABASE=tw.db_$HOSTNAME
DBSIG=tw.db_sig

function setentries
{
  # Liest markierte Einträge.
  unset -v entry
  h=$IFS ; IFS=${h:2:1} ; declare -i i=0
  for l in $(grep "#.*$1" $DESTDIR/tw.config$ext); do
    entry[$i]=${l%% *} ; i=$((i+1))
  done
  IFS=$h
}

declare -i i=1
for conf in $DESTDIR/tw.config*; do

  ext=${conf#*tw.config}
  if [ -z "$ext" ]; then
    echo -n "$i) <HARDCODED>..."
  else
    echo -n "$i) ${ext#-}..."
  fi
  i=$((i+1))

  if ! [ -e $DATADIR/$DATABASE$ext ]; then

    setentries FLAG

    # Dummies verteilen!
    for path in ${entry[*]}; do
      echo " - ASR-Dummy - " >$path
    done

    # Datenbank erzeugen!
    new_db="./databases/$DATABASE"
    db=$DATADIR/$DATABASE$ext
    dbsig=$DBSIGDIR/$DBSIG$ext
    dbback=$BACKUPDIR/$DATABASE$ext
    if $DESTDIR/tripwire --initialize --quiet --cfgfile $conf; then
      cp -p $new_db $db ; chmod 600 $db
      # Arbeitskopie...
      $DESTDIR/siggen -7 $new_db >$dbsig ; chmod 600 $dbsig
      # ...zug. Signatur...
      gzip -1 -c $new_db >$dbback.gz ; gzip -t $dbback.gz
      # ...und Sicherheitskopie der Datenbank.
    else
      echo -e "stop.\n   --> ${0##*/}: Laufzeitfehler!"
    fi

    # Dummies einsammeln!
    for path in ${entry[*]}; do
      rm -f $path
    done

    echo 'ok.'

  else
    echo -e "stop.\n   --> ${0##*/}: Datenbank bereits vorhanden!"
  fi

done

