aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cask/lib
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew/cask/lib')
-rw-r--r--Library/Homebrew/cask/lib/hbc/artifact/pkg.rb17
1 files changed, 16 insertions, 1 deletions
diff --git a/Library/Homebrew/cask/lib/hbc/artifact/pkg.rb b/Library/Homebrew/cask/lib/hbc/artifact/pkg.rb
index d5e63d8ef..2f34814ab 100644
--- a/Library/Homebrew/cask/lib/hbc/artifact/pkg.rb
+++ b/Library/Homebrew/cask/lib/hbc/artifact/pkg.rb
@@ -2,6 +2,8 @@ require "hbc/artifact/base"
require "hbc/utils/hash_validator"
+require "vendor/plist/plist"
+
module Hbc
module Artifact
class Pkg < Base
@@ -16,7 +18,7 @@ module Hbc
@pkg_install_opts = pkg_description.shift
begin
if @pkg_install_opts.respond_to?(:keys)
- @pkg_install_opts.extend(HashValidator).assert_valid_keys(:allow_untrusted)
+ @pkg_install_opts.extend(HashValidator).assert_valid_keys(:allow_untrusted, :choices)
elsif @pkg_install_opts
raise
end
@@ -52,8 +54,21 @@ module Hbc
]
args << "-verboseR" if Hbc.verbose
args << "-allowUntrusted" if pkg_install_opts :allow_untrusted
+ if pkg_install_opts :choices
+ args << "-applyChoiceChangesXML"
+ args << choices_xml
+ end
@command.run!("/usr/sbin/installer", sudo: true, args: args, print_stdout: true)
end
+
+ def choices_xml
+ path = @cask.staged_path.join("Choices.xml")
+ unless File.exist? path
+ choices = pkg_install_opts :choices
+ IO.write path, Plist::Emit.dump(choices)
+ end
+ path
+ end
end
end
end