summaryrefslogtreecommitdiffstats
path: root/lib/puppet/provider/package/apt.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/provider/package/apt.rb')
-rwxr-xr-xlib/puppet/provider/package/apt.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/puppet/provider/package/apt.rb b/lib/puppet/provider/package/apt.rb
index b4f94fb0c..9c4478eba 100755
--- a/lib/puppet/provider/package/apt.rb
+++ b/lib/puppet/provider/package/apt.rb
@@ -6,6 +6,7 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg do
commands :aptget => "/usr/bin/apt-get"
commands :aptcache => "/usr/bin/apt-cache"
+ commands :preseed => "/usr/bin/debconf-set-selections"
defaultfor :operatingsystem => :debian
@@ -43,6 +44,9 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg do
# Install a package using 'apt-get'. This function needs to support
# installing a specific version.
def install
+ if @model[:responsefile]
+ self.preseed
+ end
should = @model.should(:ensure)
checkforcdrom()
@@ -88,6 +92,19 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg do
end
end
+ #
+ # preseeds answers to dpkg-set-selection from the "responsefile"
+ #
+ def preseed
+ if response = @model[:responsefile] && FileTest.exists?(response)
+ self.info("Preseeding %s to debconf-set-selections" % response)
+
+ preseed response
+ else
+ self.info "No responsefile specified or non existant, not preseeding anything"
+ end
+ end
+
def update
self.install
end