diff options
Diffstat (limited to 'sysutils')
-rw-r--r-- | sysutils/Makefile | 1 | ||||
-rw-r--r-- | sysutils/hfm/Makefile | 56 | ||||
-rw-r--r-- | sysutils/hfm/distinfo | 6 | ||||
-rw-r--r-- | sysutils/hfm/files/hfm.in | 47 | ||||
-rw-r--r-- | sysutils/hfm/pkg-descr | 17 | ||||
-rw-r--r-- | sysutils/hfm/pkg-message | 5 | ||||
-rw-r--r-- | sysutils/hfm/pkg-plist | 8 |
7 files changed, 140 insertions, 0 deletions
diff --git a/sysutils/Makefile b/sysutils/Makefile index 0c12b90b8968..776b38eb1258 100644 --- a/sysutils/Makefile +++ b/sysutils/Makefile @@ -405,6 +405,7 @@ SUBDIR += heartbeat SUBDIR += heirloom SUBDIR += hextools + SUBDIR += hfm SUBDIR += hfsexplorer SUBDIR += hfsutils SUBDIR += hidesvn diff --git a/sysutils/hfm/Makefile b/sysutils/hfm/Makefile new file mode 100644 index 000000000000..4e4d0563d0da --- /dev/null +++ b/sysutils/hfm/Makefile @@ -0,0 +1,56 @@ +# $FreeBSD$ + +PORTNAME= hfm +PORTVERSION= 1.1.3 +DISTVERSIONPREFIX= v +CATEGORIES= sysutils + +MAINTAINER= 554b8425@razorfever.net +COMMENT= Run tests in parallel at high frequency + +LICENSE= BSD2CLAUSE + +# gb 0.4 includes FreeBSD-specific fixes that this port requires +# https://github.com/constabulary/gb/issues/506 +BUILD_DEPENDS= go>=1.5:${PORTSDIR}/lang/go \ + gb>=0.4:${PORTSDIR}/devel/gb \ + ${LOCALBASE}/lib/libucl.a:${PORTSDIR}/textproc/libucl + +USES= compiler:c++11-lang +USE_GITHUB= yes + +GH_ACCOUNT= derekmarcotte mitchellh:gu op:gl +GH_PROJECT= hfm go-libucl:gu go-logging:gl +GH_TAGNAME= ${DISTVERSIONFULL} f9d0e55:gu dfaf3df:gl + +USERS= _hfm +GROUPS= _hfm + +USE_RC_SUBR= hfm + +MAKE_ARGS+= ETCDIR=${ETCDIR} TAG=${DISTVERSIONPREFIX}${PORTVERSION} + +NO_INSTALL= yes +ALL_TARGET= test build + +post-extract: + ${MKDIR} ${WRKSRC}/vendor/src/github.com/mitchellh/go-libucl + ${MV} ${WRKDIR}/go-libucl-f9d0e55/* ${WRKSRC}/vendor/src/github.com/mitchellh/go-libucl/ + ${MKDIR} ${WRKSRC}/vendor/src/github.com/op/go-logging + ${MV} ${WRKDIR}/go-logging-dfaf3df/* ${WRKSRC}/vendor/src/github.com/op/go-logging/ + +do-patch: + (cd ${WRKSRC}; ${PATCH} vendor/src/github.com/mitchellh/go-libucl/libucl.go < vendor/patches/github.com/mitchellh/go-libucl/libucl.go.patch ) + +do-install: + @${MKDIR} ${STAGEDIR}${PREFIX}/bin + ${INSTALL_PROGRAM} ${WRKSRC}/bin/hfm ${STAGEDIR}${PREFIX}/bin + @${MKDIR} ${STAGEDIR}${ETCDIR} + ${INSTALL_DATA} ${WRKSRC}/examples/hfm.conf.sample ${STAGEDIR}${ETCDIR} + @${MKDIR} ${STAGEDIR}${EXAMPLESDIR} + ${INSTALL_DATA} ${WRKSRC}/examples/* ${STAGEDIR}${EXAMPLESDIR} + @${MKDIR} ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/doc/* ${STAGEDIR}${DOCSDIR} + +.include <bsd.port.mk> diff --git a/sysutils/hfm/distinfo b/sysutils/hfm/distinfo new file mode 100644 index 000000000000..11a1c39c14a3 --- /dev/null +++ b/sysutils/hfm/distinfo @@ -0,0 +1,6 @@ +SHA256 (derekmarcotte-hfm-v1.1.3_GH0.tar.gz) = 8e00fbb4a640ac5cd6473f4705043af4067be731cdabc5aeb882121a0ccae743 +SIZE (derekmarcotte-hfm-v1.1.3_GH0.tar.gz) = 33915 +SHA256 (mitchellh-go-libucl-f9d0e55_GH0.tar.gz) = 955e56fa334e7131ca313098fcf0a91ce89270cf1294d2a07830aa1c17b58fc0 +SIZE (mitchellh-go-libucl-f9d0e55_GH0.tar.gz) = 9426 +SHA256 (op-go-logging-dfaf3df_GH0.tar.gz) = d34d3afbdb07ad92f51d2a0a9f2682a4c0fcece733618a4ad27013e5ab6c8b60 +SIZE (op-go-logging-dfaf3df_GH0.tar.gz) = 35747 diff --git a/sysutils/hfm/files/hfm.in b/sysutils/hfm/files/hfm.in new file mode 100644 index 000000000000..74e216fe9679 --- /dev/null +++ b/sysutils/hfm/files/hfm.in @@ -0,0 +1,47 @@ +#!/bin/sh + +# $FreeBSD$ +# +# PROVIDE: hfm +# REQUIRE: LOGIN +# KEYWORD: shutdown +# +# Add these lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# hfm_enable (bool): Set to NO by default. +# Set it to YES to enable hfm. +# +# hfm_flags (bool): Check the sources of hfm for flags +# + +. /etc/rc.subr + +name=hfm +rcvar=hfm_enable + +command="%%PREFIX%%/bin/${name}" + +hfm_user=_hfm +hfm_flags=${hfm_flags:-"-config %%ETCDIR%%/${name}.conf -facility local0 -log syslog"} + +pidfile="/var/run/${name}.pid" + +required_files="%%ETCDIR%%/${name}.conf" + +start_cmd=hfm_start +stop_postcmd=hfm_postcmd + +hfm_start() { + echo "Staring ${name}." + + /usr/sbin/daemon -cf -u ${hfm_user} -p ${pidfile} ${command} ${hfm_flags} +} + +hfm_postcmd() { + [ -f ${pidfile} ] && rm ${pidfile} +} + +load_rc_config $name +run_rc_command "$1" + diff --git a/sysutils/hfm/pkg-descr b/sysutils/hfm/pkg-descr new file mode 100644 index 000000000000..431436bd27da --- /dev/null +++ b/sysutils/hfm/pkg-descr @@ -0,0 +1,17 @@ +hfm is an application to run tests in parallel at a high frequency. +If the outcome of the test results in a state change, other commands +can be executed. + +It is designed to be a general purpose, loosely-coupled tool, by +having both the tests and the state change commands be executed by +the operating system. For example, one could write the test in +shell or c, and have it called through the exec facility. + +In practice, the overhead of spawning a new process per test limits +frequency that can be achieved by the tests, and their results. +Anecdotally, 5ms intervals have been seen to be achievable. + +An example application is to poll other network services for health, +and to take actions based on their health status changes. + +WWW: https://github.com/derekmarcotte/hfm diff --git a/sysutils/hfm/pkg-message b/sysutils/hfm/pkg-message new file mode 100644 index 000000000000..52dc919ad1bb --- /dev/null +++ b/sysutils/hfm/pkg-message @@ -0,0 +1,5 @@ +hfm includes an rc.d script to control a daemon mode. Use: + +sysrc hfh_enable=yes + +to enable. diff --git a/sysutils/hfm/pkg-plist b/sysutils/hfm/pkg-plist new file mode 100644 index 000000000000..a6359bce5f99 --- /dev/null +++ b/sysutils/hfm/pkg-plist @@ -0,0 +1,8 @@ +bin/hfm +%%PORTDOCS%%%%DOCSDIR%%/README.md +%%PORTDOCS%%%%DOCSDIR%%/architecture-90dpi.png +%%PORTDOCS%%%%DOCSDIR%%/architecture.svg +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/hfm-test-fast.conf +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/hfm-test-start-delay.conf +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/hfm.conf.sample +@sample %%ETCDIR%%/hfm.conf.sample |