]> git.netwichtig.de Git - user/henk/code/puppet/modules/s6.git/commitdiff
become independent of daemontools provider, differences are too big
authorHendrik Jäger <gitcommit@henk.geekmail.org>
Sun, 22 May 2022 11:00:50 +0000 (13:00 +0200)
committerHendrik Jäger <gitcommit@henk.geekmail.org>
Mon, 25 Jul 2022 21:53:04 +0000 (23:53 +0200)
lib/puppet/provider/service/s6.rb

index 5e790e2b763bebf3c7b92c940fe2ad4544b93eb3..e414f7084c3ea93e8f8f0c14196bf454198f71bb 100644 (file)
@@ -1,4 +1,4 @@
-Puppet::Type.type(:service).provide(:s6, :parent => :daemontools) do
+Puppet::Type.type(:service).provide(:s6) do
   desc <<~EOT
     skarnet.org's small and secure supervision software suite
 
@@ -62,6 +62,10 @@ Puppet::Type.type(:service).provide(:s6, :parent => :daemontools) do
       end
     end
 
+    # returns the daemon dir on this node
+    def daemondir
+      self.defpath
+    end
   end
 
   attr_writer :servicedir
@@ -80,6 +84,21 @@ Puppet::Type.type(:service).provide(:s6, :parent => :daemontools) do
     @servicedir
   end
 
+  # returns the full path of this service when enabled
+  # (ie in the service directory)
+  def service
+    File.join(self.servicedir, resource[:name])
+  end
+
+  # returns the full path to the current daemon directory
+  # note that this path can be overridden in the resource
+  # definition
+  def daemon
+    path = resource[:path]
+    raise Puppet::Error.new("#{self.class.name} must specify a path for daemon directory") unless path
+    File.join(path, resource[:name])
+  end
+
   def status
     begin
       output = s6_svstat "-u", self.service
@@ -95,7 +114,7 @@ Puppet::Type.type(:service).provide(:s6, :parent => :daemontools) do
   end
 
   def enabled?
-      # the service is enabled if it is linked
+    # the service is enabled if it is linked
     case Puppet::FileSystem.symlink?(self.service) ? :true : :false
     when :true
       return :true