summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/puppet/type/package.rb8
-rwxr-xr-xlib/puppet/type/package/sun.rb11
2 files changed, 18 insertions, 1 deletions
diff --git a/lib/puppet/type/package.rb b/lib/puppet/type/package.rb
index c7242cd14..65bb93993 100644
--- a/lib/puppet/type/package.rb
+++ b/lib/puppet/type/package.rb
@@ -280,6 +280,14 @@ module Puppet
desc "A read-only parameter set by the package."
end
+ newparam(:answerfile) do
+ desc "A file containing any necessary answers to questions asked by
+ the package. This is currently only used on Solaris. The
+ value will be validated according to system rules, which in
+ the case of Solaris means that it should either be a fully qualified
+ path or it should be in /var/sadm/install/admin."
+ end
+
# FIXME Version is screwy -- most package systems can't specify a
# version, but people will definitely want to query versions, so
# it almost seems like versions should be a read-only state,
diff --git a/lib/puppet/type/package/sun.rb b/lib/puppet/type/package/sun.rb
index a9a8116d7..3937e2804 100755
--- a/lib/puppet/type/package/sun.rb
+++ b/lib/puppet/type/package/sun.rb
@@ -4,7 +4,16 @@ module Puppet
unless self[:source]
raise Puppet::Error, "Sun packages must specify a package source"
end
- cmd = "pkgadd -d %s -n %s 2>&1" % [self[:source], self[:name]]
+ #cmd = "pkgadd -d %s -n %s 2>&1" % [self[:source], self[:name]]
+ cmd = ["pkgadd"]
+ cmd += ["-d", self[:source]]
+ cmd += ["-n", self[:name]]
+
+ if self[:answerfile]
+ cmd += ["-a", self[:answerfile]]
+ end
+ cmd << "2>&1"
+ cmd = cmd.join(" ")
self.info "Executing %s" % cmd.inspect
output = %x{#{cmd} 2>&1}