#!/bin/sh

. /usr/share/dirsrv/data/DSSharedLib

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

export LD_LIBRARY_PATH
SHLIB_PATH=$LD_LIBRARY_PATH
export SHLIB_PATH

usage ()
{
    echo "Usage: vlvindex [-Z serverID] -n backendname | {-s includesuffix}* -T vlvTag [-d debuglevel] [-v] [-h]"
    echo "Note: either \"-n backend\" or \"-s includesuffix\" are required."
    echo "Options:"
    echo "        -Z serverID        - Server instance identifier"
    echo "        -n backend         - Backend database name.  Example: userRoot"
    echo "        -s includessuffix  - Suffix to index"
    echo "        -T vlvTag          - VLV index name"
    echo "        -d debuglevel      - Debugging level"
    echo "        -v                 - Display version"
    echo "        -h                 - Display usage"
}

while getopts "Z:vd:a:T:Sn:s:x:hD:" flag
do
    case $flag in
        Z) servid=$OPTARG;;
        v) args=$args" -v";;
        s) args=$args" -s \"$OPTARG\"";;
        d) args=$args" -d \"$OPTARG\"";;
        a) args=$args" -a \"$OPTARG\"";;
        T) args=$args" -T \"$OPTARG\"";;
        S) args=$args" -S";;
        n) args=$args" -n \"$OPTARG\"";;
        x) args=$args" -x \"$OPTARG\"";;
        D) args=$args" -D \"$OPTARG\"";;
        h) usage
           exit 0;;
        ?) usage
           exit 1;;
    esac
done

if [ $# -lt 4 ]
then
    usage
    exit 1
fi

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"

eval /usr/sbin/ns-slapd db2index -D $CONFIG_DIR $args
