summaryrefslogtreecommitdiff
path: root/manifests/service/enabled.pp
diff options
context:
space:
mode:
authorMarkus Strauss <Markus@ITstrauss.eu>2011-10-27 20:34:29 -0400
committerMarkus Strauss <Markus@ITstrauss.eu>2011-10-27 20:34:29 -0400
commit8bd3fba55a717bae459ead2b03bc7ccdd9f2a82e (patch)
tree3926de63459638b055852d0b97eb7540ddac426a /manifests/service/enabled.pp
downloadpuppet-runit-8bd3fba55a717bae459ead2b03bc7ccdd9f2a82e.tar.gz
puppet-runit-8bd3fba55a717bae459ead2b03bc7ccdd9f2a82e.tar.bz2
Initial commit
Diffstat (limited to 'manifests/service/enabled.pp')
-rw-r--r--manifests/service/enabled.pp30
1 files changed, 30 insertions, 0 deletions
diff --git a/manifests/service/enabled.pp b/manifests/service/enabled.pp
new file mode 100644
index 0000000..1a71f4d
--- /dev/null
+++ b/manifests/service/enabled.pp
@@ -0,0 +1,30 @@
+define runit::service::enabled( $ensure = present ) {
+
+ # enabling the service by creating a symlink in /etc/service
+ file { "/etc/service/${name}":
+ target => "/etc/sv/${name}",
+ ensure => $ensure ? {
+ present => link,
+ default => absent,
+ },
+ }
+
+ if $ensure == present {
+
+ # subscribe to any run file changes
+ File["/etc/sv/${name}/run"] ~> Runit::Service::Enabled[$name]
+
+ # we also require notification from all environment variables
+ Runit::Service::Env <| service == $name |> {
+ notify +> Runit::Service::Enabled[$name]
+ }
+
+ exec { "sv restart ${name}":
+ subscribe => File["/etc/service/${name}"],
+ command => "/usr/bin/sv -w 60 restart /etc/sv/${name}",
+ refreshonly => true,
+ }
+
+ }
+
+}