Skip to content

Latest commit

 

History

History
71 lines (54 loc) · 2.76 KB

File metadata and controls

71 lines (54 loc) · 2.76 KB

pkg

This stanza must always be accompanied by uninstall

The first argument to the pkg stanza should be a relative path to the .pkg file to be installed. For example:

pkg "Unity.pkg"

Subsequent arguments to pkg are key/value pairs which modify the install process. Currently supported keys are allow_untrusted: and choices:.

pkg allow_untrusted:

pkg allow_untrusted: true can be used to install the .pkg with an untrusted certificate passing -allowUntrusted to /usr/sbin/installer.

This option is not permitted in official Homebrew Cask taps, it is only provided for use in third-party taps or local Casks.

Example (alinof-timer.rb):

pkg "AlinofTimer.pkg", allow_untrusted: true

pkg choices:

pkg choices: can be used to override .pkg’s default install options via -applyChoiceChangesXML. It uses a deserialized version of the choiceChanges property list (refer to the CHOICE CHANGES FILE section of the installer manual page by running man -P 'less --pattern "^CHOICE CHANGES FILE"' installer).

Running the macOS command:

$ installer -showChoicesXML -pkg '/path/to/my.pkg'

will output an XML which you can use to extract the choices: values, as well as their equivalents to the GUI options.

See this pull request for wireshark-chmodbpf and this one for wine-staging for some examples of the procedure.

Example (wireshark-chmodbpf.rb):

pkg "Wireshark #{version} Intel 64.pkg",
    choices: [
               {
                 "choiceIdentifier" => "wireshark",
                 "choiceAttribute"  => "selected",
                 "attributeSetting" => 0,
               },
               {
                 "choiceIdentifier" => "chmodbpf",
                 "choiceAttribute"  => "selected",
                 "attributeSetting" => 1,
               },
               {
                 "choiceIdentifier" => "cli",
                 "choiceAttribute"  => "selected",
                 "attributeSetting" => 0,
               },
             ]

Example (wine-staging.rb):

pkg "winehq-staging-#{version}.pkg",
    choices: [
               {
                 "choiceIdentifier" => "choice3",
                 "choiceAttribute"  => "selected",
                 "attributeSetting" => 1,
               },
             ]