diff options
-rw-r--r-- | lib/puppet/type/package.rb | 8 | ||||
-rwxr-xr-x | lib/puppet/type/package/sun.rb | 11 |
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} |