#!/sbin/runscript # Copyright 1999-2004 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-server/files/vmware-server.rc,v 1.6 2007/09/20 17:13:13 ikelos Exp $ depend() { need localmount hald use logger net after samba } vmware_prettify() { # Yea, the code is ugly but the output is pretty state=$1 waserror=0 msgtype=0 while read line do [ "${line}" = "" ] && continue if [ ${msgtype} -le 0 ] then if [ ${msgtype} -eq -1 ] then ewarn ${line} continue fi case ${line} in *:*) einfon ${line} echo eend 0 msgtype=1;; *Stopping\ VMware\ virtual\ machines*) einfon ${line} echo eend 0 msgtype=0;; *) ewarn ${line} msgtype=-1 waserror=1;; esac continue fi # Strip out anything after the code message=`echo ${line} | sed -e "s/^\(.*\).*$/\1/"` vmware_string_exception ${line} VAR_EXCEPTION=$? if [ ${VAR_EXCEPTION} == 0 ]; then echo ${line} | grep -q done einfon " ${message}" status=$? echo eend ${status} else status=0 einfo "${message}" fi if [ ${status} -eq 0 ] then logger -p local0.err -t vmware-${state} "${line}" waserror=${status} fi done if [ "${msgtype}" = "-1" ] then eend 1 "VMware is not properly configured! See above." fi return ${waserror} } vmware_string_exception() { VAR_EXCEPTION=$@ VarLineInValid=0; if [[ "${VAR_EXCEPTION}" =~ "Starting VMware management services" ]]; then VarLineInValid=1; fi; if [[ "${VAR_EXCEPTION}" =~ "Stopping VMware management services" ]]; then VarLineInValid=1; fi; if [[ "${VAR_EXCEPTION}" =~ "VMware Virtual Infrastructure Web Access" ]]; then VarLineInValid=1; fi; if [[ "${VAR_EXCEPTION}" =~ "Starting VMware autostart virtual machines" ]]; then VarLineInValid=1; fi; if [[ "${VAR_EXCEPTION}" =~ "Stopping VMware services" ]]; then VarLineInValid=1; fi; # echo $VAR_EXCEPTION return $VarLineInValid } start() { test -x /etc/vmware/init.d/vmware || \ eend 1 "vmware init script not found. Aborting" || return 1 /etc/vmware/init.d/vmware start | vmware_prettify start return $? } stop() { /etc/vmware/init.d/vmware stop | vmware_prettify stop return $? }