Index: head/net-mgmt/xymon-client/Makefile =================================================================== --- head/net-mgmt/xymon-client/Makefile (revision 379534) +++ head/net-mgmt/xymon-client/Makefile (revision 379535) @@ -1,43 +1,43 @@ # $FreeBSD$ PORTNAME= xymon PORTVERSION= 4.3.18 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= net-mgmt www MASTER_SITES= SF/xymon/Xymon/${PORTVERSION} PKGNAMESUFFIX= -client${PKGNAMESUFFIX2} DIST_SUBDIR= repacked MAINTAINER= feld@FreeBSD.org COMMENT= System for monitoring servers and networks - Client LICENSE= GPLv2 USERS= xymon GROUPS= xymon # Options XYMONUSER?= xymon XYMONHOSTIP?= 127.0.0.1 SUB_LIST+= XYMONUSER="${XYMONUSER}" MAKE_JOBS_UNSAFE= yes USES= cpe gmake CPE_VENDOR= xymon CPE_PRODUCT= xymon CONFIGURE_ENV= MAKE=${MAKE_CMD} MAKE_ENV+= XYMONUSER="${XYMONUSER}" MAKE_ENV+= XYMONHOSTIP="${XYMONHOSTIP}" MAKE_ENV+= INSTALLROOT="${STAGEDIR}" MAKE_ENV+= PKGBUILD=1 MANPREFIX= ${STAGEDIR}${PREFIX} USE_RC_SUBR= xymon-client PLIST_SUB+= XYMONUSER="${XYMONUSER}" CONFIG_FILES= clientlaunch.cfg xymonclient.cfg localclient.cfg # Configure script is interactive do-configure: ${CP} ${FILESDIR}/Makefile ${WRKSRC}/ .include Index: head/net-mgmt/xymon-client/files/xymon-client.in =================================================================== --- head/net-mgmt/xymon-client/files/xymon-client.in (revision 379534) +++ head/net-mgmt/xymon-client/files/xymon-client.in (revision 379535) @@ -1,25 +1,63 @@ #!/bin/sh # # $FreeBSD$ # # PROVIDE: xymon_client # REQUIRE: DAEMON # KEYWORD: shutdown . /etc/rc.subr name=xymon_client rcvar=xymon_client_enable load_rc_config "$name" : ${xymon_client_enable:=NO} : ${xymon_client_user:=%%XYMONUSER%%} -command=%%WWWDIR%%/client/runclient.sh -command_args="${xymon_client_flags} ${1}" -procname=%%WWWDIR%%/client/bin/xymonlaunch pidfile="%%WWWDIR%%/client/logs/clientlaunch.`hostname`.pid" -start_precmd="chown -R ${xymon_client_user} %%WWWDIR%%/client/logs" +command=%%WWWDIR%%/client/bin/xymonlaunch +command_args="--config=%%WWWDIR%%/client/etc/clientlaunch.cfg --log=%%WWWDIR%%/client/logs/clientlaunch.log --pidfile=${pidfile}" +start_precmd=xymon_precmd +# Clean up leftover children +stop_postcmd="pkill -U ${xymon_client_user}" + +xymon_precmd() +{ + # Don't actually pass $xymon_client_flags to $command + rc_flags="" + + # Ensure permissions of log dir + chown -R ${xymon_client_user} %%WWWDIR%%/client/logs + + # Below is pulled almost directly from Xymon's runclient.sh script which we are bypassing due to redundancy + + # Default settings for this client + MACHINEDOTS="`uname -n`" + SERVEROSTYPE="`uname -s | tr '[ABCDEFGHIJKLMNOPQRSTUVWXYZ/]' '[abcdefghijklmnopqrstuvwxyz_]'"` + XYMONOSSCRIPT="xymonclient-$SERVEROSTYPE.sh" + XYMONCLIENTHOME="%%WWWDIR%%/client" + + for i in $xymon_client_flags; do + case "$i" in + --hostname=*) + MACHINEDOTS="`echo $i | sed -e 's/--hostname=//'`" + ;; + --os=*) + SERVEROSTYPE="`echo $i | sed -e 's/--os=//' | tr '[ABCDEFGHIJKLMNOPQRSTUVWXYZ/]' '[abcdefghijklmnopqrstuvwxyz_]'`" + ;; + --class=*) + CONFIGCLASS="`echo $i | sed -e 's/--class=//' | tr '[ABCDEFGHIJKLMNOPQRSTUVWXYZ/]' '[abcdefghijklmnopqrstuvwxyz_]'`" + ;; + esac + shift + done + + export MACHINEDOTS SERVEROSTYPE XYMONOSSCRIPT XYMONCLIENTHOME CONFIGCLASS + + MACHINE="`echo $MACHINEDOTS | sed -e 's/\./,/g'`" + export MACHINE +} run_rc_command "$1"