36 lines
825 B
Ruby
36 lines
825 B
Ruby
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
|