]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/apache/lib/puppet/provider/a2mod/a2mod.rb
try again, with puppetforge modules, correctly included now
[dsa-puppet.git] / 3rdparty / modules / apache / lib / puppet / provider / a2mod / a2mod.rb
diff --git a/3rdparty/modules/apache/lib/puppet/provider/a2mod/a2mod.rb b/3rdparty/modules/apache/lib/puppet/provider/a2mod/a2mod.rb
new file mode 100644 (file)
index 0000000..e257a57
--- /dev/null
@@ -0,0 +1,35 @@
+require 'puppet/provider/a2mod'
+
+Puppet::Type.type(:a2mod).provide(:a2mod, :parent => Puppet::Provider::A2mod) do
+    desc "Manage Apache 2 modules on Debian and Ubuntu"
+
+    optional_commands :encmd => "a2enmod"
+    optional_commands :discmd => "a2dismod"
+    commands :apache2ctl => "apache2ctl"
+
+    confine :osfamily => :debian
+    defaultfor :operatingsystem => [:debian, :ubuntu]
+
+    def self.instances
+      modules = apache2ctl("-M").lines.collect { |line|
+        m = line.match(/(\w+)_module \(shared\)$/)
+        m[1] if m
+      }.compact
+
+      modules.map do |mod|
+        new(
+          :name     => mod,
+          :ensure   => :present,
+          :provider => :a2mod
+        )
+      end
+    end
+
+    def create
+        encmd resource[:name]
+    end
+
+    def destroy
+        discmd resource[:name]
+    end
+end