PREUN
/bin/sh
if [ $1 = 0 ]; then # Final removal
/sbin/service dirsrv stop >/dev/null 2>&1 || :
/sbin/chkconfig --del dirsrv
/sbin/service dirsrv-snmp stop >/dev/null 2>&1 || :
/sbin/chkconfig --del dirsrv-snmp
fi
POSTIN
/bin/sh
/sbin/chkconfig --add dirsrv
/sbin/ldconfig
/sbin/chkconfig --add dirsrv-snmp
POSTUN
/bin/sh
/sbin/ldconfig
if [ $1 = 0 ]; then # Final removal
rm -rf /var/run/dirsrv
fi
POSTTRANS
/bin/sh
instbase="/etc/dirsrv"
# echo posttrans - upgrading - looking for instances in $instbase
# find all instances
instances="" # instances that require a restart after upgrade
ninst=0 # number of instances found in total
for dir in $instbase/slapd-* ; do
# echo dir = $dir
if [ ! -d "$dir" ] ; then continue ; fi
case "$dir" in *.removed) continue ;; esac
basename=`basename $dir`
inst=`echo $basename | sed -e 's/slapd-//g'`
# echo found instance $inst - getting status
if /sbin/service dirsrv status $inst >/dev/null 2>&1 ; then
# echo instance $inst is running
instances="$instances $inst"
else
# echo instance $inst is not running
:
fi
ninst=`expr $ninst + 1`
done
if [ $ninst -eq 0 ] ; then
exit 0 # have no instances to upgrade - just skip the rest
fi
# shutdown all instances
# echo shutting down all instances . . .
/sbin/service dirsrv stop > /dev/null 2>&1
# do the upgrade
# echo upgrading instances . . .
/usr/sbin/setup-ds.pl -l /dev/null -u -s General.UpdateMode=offline > /dev/null 2>&1
# restart instances that require it
for inst in $instances ; do
# echo restarting instance $inst
/sbin/service dirsrv start $inst >/dev/null 2>&1
done
# restart the snmp subagent if needed
/sbin/service dirsrv-snmp condrestart > /dev/null 2>&1
exit 0