+++ /dev/null
-require 'puppet/provider/a2mod'
-
-Puppet::Type.type(:a2mod).provide(:redhat, :parent => Puppet::Provider::A2mod) do
- desc "Manage Apache 2 modules on RedHat family OSs"
-
- commands :apachectl => "apachectl"
-
- confine :osfamily => :redhat
- defaultfor :osfamily => :redhat
-
- require 'pathname'
-
- # modpath: Path to default apache modules directory /etc/httpd/mod.d
- # modfile: Path to module load configuration file; Default: resides under modpath directory
- # libfile: Path to actual apache module library. Added in modfile LoadModule
-
- attr_accessor :modfile, :libfile
- class << self
- attr_accessor :modpath
- def preinit
- @modpath = "/etc/httpd/mod.d"
- end
- end
-
- self.preinit
-
- def create
- File.open(modfile,'w') do |f|
- f.puts "LoadModule #{resource[:identifier]} #{libfile}"
- end
- end
-
- def destroy
- File.delete(modfile)
- end
-
- def self.instances
- modules = apachectl("-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 => :redhat
- )
- end
- end
-
- def modfile
- modfile ||= "#{self.class.modpath}/#{resource[:name]}.load"
- end
-
- # Set libfile path: If absolute path is passed, then maintain it. Else, make it default from 'modules' dir.
- def libfile
- libfile = Pathname.new(resource[:lib]).absolute? ? resource[:lib] : "modules/#{resource[:lib]}"
- end
-end