IsServiceEnable() { # 0 if enable # 1 if disable # 2 if other service="$1" retval=0 case `GetPlatform` in *freebsd*) [ -e "/etc/rc.conf" ] && rcconf="/etc/rc.conf" ;; esac if [ -n "$rcconf" ] ; then if [ -f "$rcconf" ] ; then rcservname="`echo "$service" | $SED "s|-|_|g"`" . "$rcconf" status=`eval echo "\$${rcservname}_enable"` if [ "$status" = "YES" ] ; then retval=0 else retval=1 fi else printf "$check_autostart_srt" "$rcconf" "$service" retval=2 fi else if [ -f "$CONFDIR/$service.enable" ] ; then . "$CONFDIR/$service.enable" if [ $ENABLE -eq 1 ] ; then retval=0 else retval=1 fi else retval=0 fi fi return $retval } ToggleServiceStartup() { if [ $# -ne 2 ] ; then echo "ToggleServiceStartup: Must be 2 arguments -- ToggleServiceStartup " return 2 fi service="$1" case "$2" in on) rcvalue="YES" printf_str="`eval_gettext \"enable\"`" sed_before=0 sed_after=1 ;; off) rcvalue="NO" printf_str="`eval_gettext \"disable\"`" sed_before=1 sed_after=0 ;; esac rcconf="" retval=0 case `GetPlatform` in *freebsd*) [ -e "/etc/rc.conf" ] && rcconf="/etc/rc.conf" ;; esac if [ -n "$rcconf" ] ; then if [ -f "$rcconf" ] ; then rcservname="`echo "$service" | $SED "s|-|_|g"`" if grep ${rcservname}_enable= "$rcconf" >/dev/null; then echo "$rcconf already contains an entry for \"${rcservname}_enable\". Please check manually whether it is correct or not." retval=0 else echo "#Automaticaly added by DrWeb configuration script." >> "$rcconf" echo "${rcservname}_enable=\"$rcvalue\"" >> "$rcconf" retval=0 fi else printf "$toggle_autostart_str" "$rcconf" "$printf_str" "$service" retval=1 fi else if [ -f "$CONFDIR/$service.enable" ] ; then $SED "s|$sed_before|$sed_after|g" "$CONFDIR/$service.enable" > "$CONFDIR/$service.enable.tmp" 2>/dev/null mv "$CONFDIR/$service.enable.tmp" "$CONFDIR/$service.enable" retval=0 else retval=0 fi fi return $retval } EnableService() { retval=0 ToggleServiceStartup "$1" on retval=$? return $retval } DisableService() { retval=0 ToggleServiceStartup "$1" off retval=$? return $retval } ToggleServiceStatus() { retval=0 if [ $# -ne 2 ] ; then echo "ToggleServiceStatus: Must be 2 arguments -- ToggleServiceStatus " return 2 fi service="$1" action="$2" case "$action" in start) init_append="start" ;; stop) init_append="stop" ;; *) return 1 ;; esac case "$service" in drwebd) service_init="$DRWEBD_INIT" ;; drweb-icapd) service_init="$ICAPD_INIT" ;; drweb-monitor) service_init="$MONITOR_INIT" ;; drweb-spider) service_init="$SPIDER_INIT" ;; *) service_init="$SOFTWAREDIR/init.d/$service" ;; esac if [ -x "$service_init" ] ; then "$service_init" "$init_append" retval=$? else printf "`eval_gettext \"Init-script for service %s is not found.\n\"`" "$service" retval=2 fi return $retval } StartService() { retval=0 ToggleServiceStatus "$1" "start" retval=$? return $retval } StopService() { retval=0 ToggleServiceStatus "$1" "stop" retval=$? return $retval } ServiceList() { if [ -d "$SOFTWAREDIR/init.d" ] ; then ls "$SOFTWAREDIR/init.d" | $SED -e 's|^[0-9]*\.\(.*\)|\1|g' -e 's|\.sh||g' | sort -r else echo "" fi }