#!/bin/sh

. /usr/share/dirsrv/data/DSSharedLib

libpath_add "/usr/lib64/dirsrv/"
libpath_add ""
libpath_add "/usr/lib64"

export LD_LIBRARY_PATH
SHLIB_PATH=$LD_LIBRARY_PATH
export SHLIB_PATH
      
usage ()
{
    echo "Usage: dn2rdn [-Z serverID] [-h] [-f] [-v] [-d debuglevel]"
    echo "Options:"
    echo "        -Z serverID    - Server instance identifier"
    echo "        -f             - Force upgrade"
    echo "        -v             - Display version"
    echo "        -d debuglevel  - Debugging level"
    echo "        -h             - Display usage"
}
    
while getopts "Z:d:ha:vfr:D:" flag
do
    case $flag in
        h) usage
           exit 0;;
        Z) servid=$OPTARG;;
        d) arg=$arg" -d \"$OPTARG\"";;
        a) arg=$arg" -a \"$OPTARG\""
           archive="provided";;
        v) arg=$arg" -v";;
        f) arg=$arg" -f";;
        D) arg=$arg" -D \"$OPTARG\"";;
        ?) usage
           exit 1;;
    esac
done

shift $(($OPTIND - 1))
if [ $1 ]
then
    echo "ERROR - Unknown option: $1"
    usage
    exit 1
fi

instance=$(get_slapd_instance "/etc/dirsrv" $servid)
if [ $? -eq 1 ]
then
    usage
    echo "You must supply a valid server instance identifier.  Use -Z to specify instance name"
    echo "Available instances: $instance"
    exit 1
fi

CONFIG_DIR="/etc/dirsrv/slapd-$instance"

if [ "$archive" != "provided" ]; then
    bak_dir=/var/lib/dirsrv/slapd-$instance/bak/reindex_`date +%Y_%m_%d_%H_%M_%S`
    args=$args"-a $bak_dir"
fi

eval /usr/sbin/ns-slapd upgradedb -D $CONFIG_DIR -r $args
