bottles: --force-bottle feigns or_later.

When reproducing issues with software that hasn’t been bottled yet on
your version of macOS it can sometimes be helpful to use `or_later`
bottle functionality i.e. just use the bottle for the latest version of
macOS available. This maps well to the existing `--force-bottle`
argument so it will now act as if the latest bottle has a `or_later`
ending.
This commit is contained in:
Mike McQuaid 2017-01-02 16:05:14 +00:00
parent e84e4b5566
commit 79f9896d2f
6 changed files with 22 additions and 11 deletions

View File

@ -18,8 +18,9 @@
#: If `--build-from-source` is passed, download the source rather than a #: If `--build-from-source` is passed, download the source rather than a
#: bottle. #: bottle.
#: #:
#: If `--force-bottle` is passed, download a bottle if it exists for the current #: If `--force-bottle` is passed, download a bottle if it exists for the
#: version of macOS, even if it would not be used during installation. #: current or newest version of macOS, even if it would not be used during
#: installation.
require "formula" require "formula"

View File

@ -32,10 +32,10 @@
#: passed, then both <formula> and the dependencies installed as part of this process #: passed, then both <formula> and the dependencies installed as part of this process
#: are built from source even if bottles are available. #: are built from source even if bottles are available.
#: #:
# Hidden developer option: #: If `--force-bottle` is passed, install from a bottle if it exists for the
# If `--force-bottle` is passed, install from a bottle if it exists #: current or newest version of macOS, even if it would not normally be used
# for the current version of macOS, even if custom options are given. #: for installation.
# #:
#: If `--devel` is passed, and <formula> defines it, install the development version. #: If `--devel` is passed, and <formula> defines it, install the development version.
#: #:
#: If `--HEAD` is passed, and <formula> defines it, install the HEAD version, #: If `--HEAD` is passed, and <formula> defines it, install the HEAD version,

View File

@ -49,6 +49,8 @@ module Utils
if key.to_s.end_with?("_or_later") if key.to_s.end_with?("_or_later")
later_tag = key.to_s[/(\w+)_or_later$/, 1].to_sym later_tag = key.to_s[/(\w+)_or_later$/, 1].to_sym
MacOS::Version.from_symbol(later_tag) <= tag_version MacOS::Version.from_symbol(later_tag) <= tag_version
elsif ARGV.force_bottle?
true
end end
end end
end end

View File

@ -127,8 +127,9 @@ checksum of a previously cached version no longer matches.</p>
<p>If <code>--build-from-source</code> is passed, download the source rather than a <p>If <code>--build-from-source</code> is passed, download the source rather than a
bottle.</p> bottle.</p>
<p>If <code>--force-bottle</code> is passed, download a bottle if it exists for the current <p>If <code>--force-bottle</code> is passed, download a bottle if it exists for the
version of macOS, even if it would not be used during installation.</p></dd> current or newest version of macOS, even if it would not be used during
installation.</p></dd>
<dt><code>gist-logs</code> [<code>--new-issue</code>|<code>-n</code>] <var>formula</var></dt><dd><p>Upload logs for a failed build of <var>formula</var> to a new Gist.</p> <dt><code>gist-logs</code> [<code>--new-issue</code>|<code>-n</code>] <var>formula</var></dt><dd><p>Upload logs for a failed build of <var>formula</var> to a new Gist.</p>
<p><var>formula</var> is usually the name of the formula to install, but it can be specified <p><var>formula</var> is usually the name of the formula to install, but it can be specified
@ -185,6 +186,10 @@ from bottles if they are available.</p>
passed, then both <var>formula</var> and the dependencies installed as part of this process passed, then both <var>formula</var> and the dependencies installed as part of this process
are built from source even if bottles are available.</p> are built from source even if bottles are available.</p>
<p>If <code>--force-bottle</code> is passed, install from a bottle if it exists for the
current or newest version of macOS, even if it would not normally be used
for installation.</p>
<p>If <code>--devel</code> is passed, and <var>formula</var> defines it, install the development version.</p> <p>If <code>--devel</code> is passed, and <var>formula</var> defines it, install the development version.</p>
<p>If <code>--HEAD</code> is passed, and <var>formula</var> defines it, install the HEAD version, <p>If <code>--HEAD</code> is passed, and <var>formula</var> defines it, install the HEAD version,

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BREW\-CASK" "1" "December 2016" "Homebrew" "brew-cask" .TH "BREW\-CASK" "1" "January 2017" "Homebrew" "brew-cask"
. .
.SH "NAME" .SH "NAME"
\fBbrew\-cask\fR \- a friendly binary installer for macOS \fBbrew\-cask\fR \- a friendly binary installer for macOS

View File

@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "BREW" "1" "December 2016" "Homebrew" "brew" .TH "BREW" "1" "January 2017" "Homebrew" "brew"
. .
.SH "NAME" .SH "NAME"
\fBbrew\fR \- The missing package manager for macOS \fBbrew\fR \- The missing package manager for macOS
@ -171,7 +171,7 @@ If \fB\-\-deps\fR is passed, also download dependencies for any listed \fIformul
If \fB\-\-build\-from\-source\fR is passed, download the source rather than a bottle\. If \fB\-\-build\-from\-source\fR is passed, download the source rather than a bottle\.
. .
.IP .IP
If \fB\-\-force\-bottle\fR is passed, download a bottle if it exists for the current version of macOS, even if it would not be used during installation\. If \fB\-\-force\-bottle\fR is passed, download a bottle if it exists for the current or newest version of macOS, even if it would not be used during installation\.
. .
.TP .TP
\fBgist\-logs\fR [\fB\-\-new\-issue\fR|\fB\-n\fR] \fIformula\fR \fBgist\-logs\fR [\fB\-\-new\-issue\fR|\fB\-n\fR] \fIformula\fR
@ -247,6 +247,9 @@ If \fB\-\-build\-from\-source\fR or \fB\-s\fR is passed, compile the specified \
If \fBHOMEBREW_BUILD_FROM_SOURCE\fR is set, regardless of whether \fB\-\-build\-from\-source\fR was passed, then both \fIformula\fR and the dependencies installed as part of this process are built from source even if bottles are available\. If \fBHOMEBREW_BUILD_FROM_SOURCE\fR is set, regardless of whether \fB\-\-build\-from\-source\fR was passed, then both \fIformula\fR and the dependencies installed as part of this process are built from source even if bottles are available\.
. .
.IP .IP
If \fB\-\-force\-bottle\fR is passed, install from a bottle if it exists for the current or newest version of macOS, even if it would not normally be used for installation\.
.
.IP
If \fB\-\-devel\fR is passed, and \fIformula\fR defines it, install the development version\. If \fB\-\-devel\fR is passed, and \fIformula\fR defines it, install the development version\.
. .
.IP .IP