#!/usr/bin/env bash

set -e

if test "x`/bin/ls *.gz 2> /dev/null`" = "x"; then
  exit 0
fi

eval `ultrapossum-config init`
trap "/bin/rm -rf $DIRECTORY/dbload.$$; `eval ultrapossum-config term`" 0

soname="$SLAPD_BERKLEYDB_SONAME"
old_soname=`getvalue $DIRECTORY/ultrapossum-environ SLAPD_BERKLEYDB_SONAME 2> /dev/null`
if test "x$old_soname" = "x"; then
  old_soname=$SLAPD_BERKLEYDB_SONAME_OLD
  if test "x$old_soname" = "x"; then
    old_soname=`date +%Y%m%d`
  fi
fi

progress "Configuring berkleydb environment for $soname... "
case "x$soname" in
  xlibdb-4.2.so)
    load="db4.2_load"
  ;;
  xlibdb-4.1.so)
    load="db4.1_load"
  ;;
  x)
    echo "E: can't recognize what version of berkley db is used" 1>&2
    exit 1
  ;;
  x*)
    echo "E: Unsupported soname: $soname" 1>&2
    exit 1
  ;;
esac
progress "Configuring berkleydb environment for $soname... $load done"

for f in `/bin/ls *.gz`
do
  install -d $DIRECTORY/dbload.$$
  file="`basename $f .gz`"
  progress "Loading $f..."
  zcat $f | $load -h $DIRECTORY/dbload.$$ $file
  progress "Loading $f... done"
done
(
 cd $DIRECTORY
 /bin/ls | grep -v dbload.$$ | xargs tar zcf dbload.$$/$SUFFIX-$old_soname.tar.gz 
 /bin/ls | grep -v dbload.$$ | xargs /bin/rm -rf
)
/bin/mv $DIRECTORY/dbload.$$/* $DIRECTORY

getconfig > $DIRECTORY/ultrapossum-environ

