summaryrefslogtreecommitdiff
path: root/manifests
diff options
context:
space:
mode:
Diffstat (limited to 'manifests')
-rw-r--r--manifests/service.pp27
1 files changed, 24 insertions, 3 deletions
diff --git a/manifests/service.pp b/manifests/service.pp
index 54b10ad..85a7ec5 100644
--- a/manifests/service.pp
+++ b/manifests/service.pp
@@ -3,20 +3,32 @@ define runit::service (
$group = root, # the service's group name
$enable = true, # shall the service be linked to /etc/service
$ensure = present, # shall the service be present in /etc/sv
- # either one of these three must be declared - it defines the content of the run script /etc/sv/$name/run
+ # start command - either one of these three must be declared - it defines the content of the run script /etc/sv/$name/run
$command = undef, # the most simple way; just state command here - it may not daemonize itself,
# but rather stay in the foreground; all output is logged automatically to $logdir/current
# this uses a default template which provides logging
$source = undef, # specify a source file on your puppet master
$content = undef, # specify the content directly (mostly via 'template')
+ # finish command - defines the content of the finish script /etc/sv/$name/finish
+ $finish_command = '',
+ $finish_source = undef,
+ $finish_content = undef,
# service directory - this is required if you use 'command'
$rundir = undef,
# logging stuff
$logger = true, # shall we setup an logging service; if you use 'command' before,
# all output from command will be logged automatically to $logdir/current
- $logdir = "${rundir}/log",
+ $_logdir = undef,
$timeout = 7 # service restart/stop timeouts (only relevant for 'enabled' services)
) {
+
+ # using the following construct, because '$logdir = "${rundir}/log"' in the
+ # define statement produces compilation warnings
+ if $_logdir == undef {
+ $logdir = "${rundir}/log"
+ } else {
+ $logdir = $_logdir
+ }
# FixMe: Validate parameters
# fail("Only one of 'command', 'content', or 'source' parameters is allowed")
@@ -57,8 +69,17 @@ define runit::service (
ensure => $ensure,
mode => 755,
;
+ "${svbase}/finish":
+ content => $finish_content ? {
+ undef => template('runit/finish.erb'),
+ default => $finish_content,
+ },
+ source => $finish_source,
+ ensure => $ensure,
+ mode => 755,
+ ;
}
-
+
# eventually enabling/disabling the service
if $enable == true {
debug( "Service ${name}: ${_ensure_enabled}" )