Fix fresh dirsrv installs on Ubuntu 20.04
This commit is contained in:
119
site-cookbooks/kosmos-dirsrv/files/ldif2db
Executable file
119
site-cookbooks/kosmos-dirsrv/files/ldif2db
Executable file
@@ -0,0 +1,119 @@
|
||||
#!/bin/bash
|
||||
|
||||
. /usr/share/dirsrv/data/DSSharedLib
|
||||
|
||||
libpath_add "/usr/lib/x86_64-linux-gnu/dirsrv/"
|
||||
libpath_add ""
|
||||
libpath_add "/usr/lib/x86_64-linux-gnu"
|
||||
libpath_add "/usr/lib/x86_64-linux-gnu"
|
||||
|
||||
export LD_LIBRARY_PATH
|
||||
SHLIB_PATH=$LD_LIBRARY_PATH
|
||||
export SHLIB_PATH
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "Usage: ldif2db [-Z serverID] -n backendname {-s includesuffix}* [{-x excludesuffix}*] {-i ldiffile}*"
|
||||
echo " [-c chunksize] [-g [string]] [-G namespace_id] [-O] [-E] [-q] [-v] [-h]"
|
||||
echo "Note: either \"-n backend\", \"-s includesuffix\", and \"-i ldiffile\" are required."
|
||||
echo "Options:"
|
||||
echo " -Z serverID - The server instance identifier"
|
||||
echo " -n backend - Backend database name. Example: userRoot"
|
||||
echo " -s inclduesuffix - Suffix to include"
|
||||
echo " -x excludesuffix - Suffix to exclude"
|
||||
echo " -i ldiffile - LDIF file name"
|
||||
echo " -c chunksize - Number of entries to process before starting a new pass"
|
||||
echo " -g [string] - String is \"none\" or \"deterministic\""
|
||||
echo " \"none\" - unique id is not generated"
|
||||
echo " \"deterministic\" - generate name based unique id (-G name)"
|
||||
echo " By default - generate time based unique id"
|
||||
echo " -G name - Namespace id for name based uniqueid (-g deterministic)"
|
||||
echo " -O - Do not index the attributes"
|
||||
echo " -E - Encrypt attributes"
|
||||
echo " -q - Quiet mode - suppresses output"
|
||||
echo " -v - Display version"
|
||||
echo " -h - Display usage"
|
||||
}
|
||||
|
||||
handleopts()
|
||||
{
|
||||
while [ "$1" != "" ]
|
||||
do
|
||||
if [ "$1" = "-q" ]; then
|
||||
return 1
|
||||
elif [ "$1" = "-Z" ]; then
|
||||
shift
|
||||
servid=$1
|
||||
elif [ "$1" = "-h" ]; then
|
||||
usage
|
||||
exit 0
|
||||
fi
|
||||
shift
|
||||
done
|
||||
return 0
|
||||
}
|
||||
|
||||
while getopts "Z:vhd:i:g:G:n:s:x:NOCc:St:D:Eq" flag
|
||||
do
|
||||
case $flag in
|
||||
h) usage
|
||||
exit 0;;
|
||||
Z) servid=$OPTARG;;
|
||||
n) args=$args" -n \"$OPTARG\"";;
|
||||
i) args=$args" -i \"$OPTARG\"";;
|
||||
s) args=$args" -s \"$OPTARG\"";;
|
||||
x) args=$args" -x \"$OPTARG\"";;
|
||||
c) args=$args" -c \"$OPTARG\"";;
|
||||
d) args=$args" -d \"$OPTARG\"";;
|
||||
g) args=$args" -g \"$OPTARG\"";;
|
||||
G) args=$args" -G \"$OPTARG\"";;
|
||||
t) args=$args" -t \"$OPTARG\"";;
|
||||
D) args=$args" -D \"$OPTARG\"";;
|
||||
E) args=$args" -E";;
|
||||
v) args=$args" -v";;
|
||||
N) args=$args" -N";;
|
||||
C) args=$args" -C";;
|
||||
S) args=$args" -S";;
|
||||
O) args=$args" -O";;
|
||||
q) args=$args" -q";;
|
||||
?) usage
|
||||
exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ $# -lt 4 ]
|
||||
then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ARGS=$@
|
||||
shift $(($OPTIND - 1))
|
||||
if [ $1 ]
|
||||
then
|
||||
echo "ERROR - Unknown option: $1"
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# FIXME look up if not master
|
||||
initfile="/etc/default/dirsrv-master"
|
||||
if [ $? -eq 1 ]
|
||||
then
|
||||
usage
|
||||
echo "You must supply a valid server instance identifier. Use -Z to specify instance name"
|
||||
echo "Available instances: $initfile"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
. $initfile
|
||||
|
||||
handleopts $ARGS
|
||||
quiet=$?
|
||||
if [ $quiet -eq 0 ]; then
|
||||
echo importing data ...
|
||||
fi
|
||||
|
||||
eval /usr/sbin/ns-slapd ldif2db -D $CONFIG_DIR $args 2>&1
|
||||
|
||||
exit $?
|
||||
Reference in New Issue
Block a user