mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
Merge pull request #19786 from botantony/autobump
formula/cask: add `no_autobump` method
This commit is contained in:
commit
335933f67c
@ -17,7 +17,8 @@ FORMULA_COMPONENT_PRECEDENCE_LIST = T.let([
|
|||||||
[{ name: :head, type: :method_call }],
|
[{ name: :head, type: :method_call }],
|
||||||
[{ name: :stable, type: :block_call }],
|
[{ name: :stable, type: :block_call }],
|
||||||
[{ name: :livecheck, type: :block_call }],
|
[{ name: :livecheck, type: :block_call }],
|
||||||
[{ name: :bottle, type: :block_call }],
|
[{ name: :no_autobump!, type: :method_call }],
|
||||||
|
[{ name: :bottle, type: :block_call }],
|
||||||
[{ name: :pour_bottle?, type: :block_call }],
|
[{ name: :pour_bottle?, type: :block_call }],
|
||||||
[{ name: :head, type: :block_call }],
|
[{ name: :head, type: :block_call }],
|
||||||
[{ name: :bottle, type: :method_call }],
|
[{ name: :bottle, type: :method_call }],
|
||||||
|
7
Library/Homebrew/autobump_constants.rb
Normal file
7
Library/Homebrew/autobump_constants.rb
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# typed: strict
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
# TODO: add more reasons here
|
||||||
|
NO_AUTOBUMP_REASONS_LIST = T.let({
|
||||||
|
incompatible_version_format: "incompatible version format",
|
||||||
|
}.freeze, T::Hash[Symbol, String])
|
@ -371,6 +371,9 @@ module Cask
|
|||||||
"url" => url,
|
"url" => url,
|
||||||
"url_specs" => url_specs,
|
"url_specs" => url_specs,
|
||||||
"version" => version,
|
"version" => version,
|
||||||
|
"autobump" => autobump?,
|
||||||
|
"no_autobump_message" => no_autobump_message,
|
||||||
|
"skip_livecheck" => livecheck.skip?,
|
||||||
"installed" => installed_version,
|
"installed" => installed_version,
|
||||||
"installed_time" => install_time&.to_i,
|
"installed_time" => install_time&.to_i,
|
||||||
"bundle_version" => bundle_long_version,
|
"bundle_version" => bundle_long_version,
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
# typed: true # rubocop:todo Sorbet/StrictSigil
|
# typed: true # rubocop:todo Sorbet/StrictSigil
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require "autobump_constants"
|
||||||
require "locale"
|
require "locale"
|
||||||
require "lazy_object"
|
require "lazy_object"
|
||||||
require "livecheck"
|
require "livecheck"
|
||||||
@ -102,6 +103,9 @@ module Cask
|
|||||||
:livecheck,
|
:livecheck,
|
||||||
:livecheck_defined?,
|
:livecheck_defined?,
|
||||||
:livecheckable?, # TODO: remove once `#livecheckable?` is removed
|
:livecheckable?, # TODO: remove once `#livecheckable?` is removed
|
||||||
|
:no_autobump!,
|
||||||
|
:autobump?,
|
||||||
|
:no_autobump_message,
|
||||||
:on_system_blocks_exist?,
|
:on_system_blocks_exist?,
|
||||||
:on_system_block_min_os,
|
:on_system_block_min_os,
|
||||||
:depends_on_set_in_block?,
|
:depends_on_set_in_block?,
|
||||||
@ -112,7 +116,7 @@ module Cask
|
|||||||
|
|
||||||
include OnSystem::MacOSAndLinux
|
include OnSystem::MacOSAndLinux
|
||||||
|
|
||||||
attr_reader :cask, :token, :artifacts, :deprecation_date, :deprecation_reason,
|
attr_reader :cask, :token, :no_autobump_message, :artifacts, :deprecation_date, :deprecation_reason,
|
||||||
:deprecation_replacement_cask, :deprecation_replacement_formula,
|
:deprecation_replacement_cask, :deprecation_replacement_formula,
|
||||||
:disable_date, :disable_reason, :disable_replacement_cask,
|
:disable_date, :disable_reason, :disable_replacement_cask,
|
||||||
:disable_replacement_formula, :on_system_block_min_os
|
:disable_replacement_formula, :on_system_block_min_os
|
||||||
@ -147,6 +151,8 @@ module Cask
|
|||||||
@livecheck = T.let(Livecheck.new(cask), Livecheck)
|
@livecheck = T.let(Livecheck.new(cask), Livecheck)
|
||||||
@livecheck_defined = T.let(false, T::Boolean)
|
@livecheck_defined = T.let(false, T::Boolean)
|
||||||
@name = T.let([], T::Array[String])
|
@name = T.let([], T::Array[String])
|
||||||
|
@autobump = T.let(true, T::Boolean)
|
||||||
|
@no_autobump_defined = T.let(false, T::Boolean)
|
||||||
@on_system_blocks_exist = T.let(false, T::Boolean)
|
@on_system_blocks_exist = T.let(false, T::Boolean)
|
||||||
@os = T.let(nil, T.nilable(String))
|
@os = T.let(nil, T.nilable(String))
|
||||||
@on_system_block_min_os = T.let(nil, T.nilable(MacOSVersion))
|
@on_system_block_min_os = T.let(nil, T.nilable(MacOSVersion))
|
||||||
@ -540,6 +546,37 @@ module Cask
|
|||||||
@livecheck_defined == true
|
@livecheck_defined == true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Excludes the cask from autobump list.
|
||||||
|
#
|
||||||
|
# TODO: limit this method to the official taps only (f.e. raise
|
||||||
|
# an error if `!tap.official?`)
|
||||||
|
#
|
||||||
|
# @api public
|
||||||
|
sig { params(because: T.any(String, Symbol)).void }
|
||||||
|
def no_autobump!(because:)
|
||||||
|
if because.is_a?(Symbol) && !NO_AUTOBUMP_REASONS_LIST.key?(because)
|
||||||
|
raise ArgumentError, "'because' argument should use valid symbol or a string!"
|
||||||
|
end
|
||||||
|
|
||||||
|
if !@cask.allow_reassignment && @no_autobump_defined
|
||||||
|
raise CaskInvalidError.new(cask, "'no_autobump_defined' stanza may only appear once.")
|
||||||
|
end
|
||||||
|
|
||||||
|
@no_autobump_defined = true
|
||||||
|
@no_autobump_message = because
|
||||||
|
@autobump = false
|
||||||
|
end
|
||||||
|
|
||||||
|
# Is the cask in autobump list?
|
||||||
|
def autobump?
|
||||||
|
@autobump == true
|
||||||
|
end
|
||||||
|
|
||||||
|
# Is no_autobump! method defined?
|
||||||
|
def no_autobump_defined?
|
||||||
|
@no_autobump_defined == true
|
||||||
|
end
|
||||||
|
|
||||||
# Declare that a cask is no longer functional or supported.
|
# Declare that a cask is no longer functional or supported.
|
||||||
#
|
#
|
||||||
# NOTE: A warning will be shown when trying to install this cask.
|
# NOTE: A warning will be shown when trying to install this cask.
|
||||||
|
@ -81,8 +81,8 @@ module Homebrew
|
|||||||
Whoops, the #{cask.token} cask has its version update
|
Whoops, the #{cask.token} cask has its version update
|
||||||
pull requests automatically opened by BrewTestBot every ~3 hours!
|
pull requests automatically opened by BrewTestBot every ~3 hours!
|
||||||
We'd still love your contributions, though, so try another one
|
We'd still love your contributions, though, so try another one
|
||||||
that's not in the autobump list:
|
that is excluded from autobump list (i.e. it has 'no_autobump!'
|
||||||
#{Formatter.url("#{cask.tap.remote}/blob/master/.github/autobump.txt")}
|
method or 'livecheck' block with 'skip'.)
|
||||||
EOS
|
EOS
|
||||||
|
|
||||||
odie "You have too many PRs open: close or merge some first!" if GitHub.too_many_open_prs?(cask.tap)
|
odie "You have too many PRs open: close or merge some first!" if GitHub.too_many_open_prs?(cask.tap)
|
||||||
|
@ -117,8 +117,8 @@ module Homebrew
|
|||||||
Whoops, the #{formula.name} formula has its version update
|
Whoops, the #{formula.name} formula has its version update
|
||||||
pull requests automatically opened by BrewTestBot every ~3 hours!
|
pull requests automatically opened by BrewTestBot every ~3 hours!
|
||||||
We'd still love your contributions, though, so try another one
|
We'd still love your contributions, though, so try another one
|
||||||
that's not in the autobump list:
|
that is excluded from autobump list (i.e. it has 'no_autobump!'
|
||||||
#{Formatter.url("#{tap.remote}/blob/master/.github/autobump.txt")}
|
method or 'livecheck' block with 'skip'.)
|
||||||
EOS
|
EOS
|
||||||
|
|
||||||
odie "You have too many PRs open: close or merge some first!" if GitHub.too_many_open_prs?(tap)
|
odie "You have too many PRs open: close or merge some first!" if GitHub.too_many_open_prs?(tap)
|
||||||
|
@ -58,7 +58,7 @@ module Homebrew
|
|||||||
|
|
||||||
conflicts "--cask", "--formula"
|
conflicts "--cask", "--formula"
|
||||||
conflicts "--tap=", "--installed"
|
conflicts "--tap=", "--installed"
|
||||||
conflicts "--tap=", "--no-auto"
|
conflicts "--tap=", "--no-autobump"
|
||||||
conflicts "--eval-all", "--installed"
|
conflicts "--eval-all", "--installed"
|
||||||
conflicts "--installed", "--auto"
|
conflicts "--installed", "--auto"
|
||||||
conflicts "--no-pull-requests", "--open-pr"
|
conflicts "--no-pull-requests", "--open-pr"
|
||||||
|
@ -100,10 +100,7 @@ module Homebrew
|
|||||||
tap = formula_or_cask.tap
|
tap = formula_or_cask.tap
|
||||||
next false if tap.nil?
|
next false if tap.nil?
|
||||||
|
|
||||||
autobump_lists[tap] ||= begin
|
autobump_lists[tap] ||= tap.autobump
|
||||||
autobump_path = tap.path/".github/autobump.txt"
|
|
||||||
autobump_path.exist? ? autobump_path.readlines.map(&:strip) : []
|
|
||||||
end
|
|
||||||
|
|
||||||
name = formula_or_cask.respond_to?(:token) ? formula_or_cask.token : formula_or_cask.name
|
name = formula_or_cask.respond_to?(:token) ? formula_or_cask.token : formula_or_cask.name
|
||||||
next unless autobump_lists[tap].include?(name)
|
next unless autobump_lists[tap].include?(name)
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
# typed: strict
|
# typed: strict
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require "autobump_constants"
|
||||||
require "cache_store"
|
require "cache_store"
|
||||||
require "did_you_mean"
|
require "did_you_mean"
|
||||||
require "formula_support"
|
require "formula_support"
|
||||||
@ -213,6 +214,13 @@ class Formula
|
|||||||
sig { returns(T::Boolean) }
|
sig { returns(T::Boolean) }
|
||||||
attr_accessor :follow_installed_alias
|
attr_accessor :follow_installed_alias
|
||||||
|
|
||||||
|
# Message that explains why the formula was excluded from autobump list.
|
||||||
|
# Returns `nil` if no message is specified.
|
||||||
|
#
|
||||||
|
# @see .no_autobump!
|
||||||
|
sig { returns(T.nilable(T.any(String, Symbol))) }
|
||||||
|
attr_reader :no_autobump_message
|
||||||
|
|
||||||
alias follow_installed_alias? follow_installed_alias
|
alias follow_installed_alias? follow_installed_alias
|
||||||
|
|
||||||
# Whether or not to force the use of a bottle.
|
# Whether or not to force the use of a bottle.
|
||||||
@ -242,6 +250,9 @@ class Formula
|
|||||||
@head = T.let(nil, T.nilable(SoftwareSpec))
|
@head = T.let(nil, T.nilable(SoftwareSpec))
|
||||||
@stable = T.let(nil, T.nilable(SoftwareSpec))
|
@stable = T.let(nil, T.nilable(SoftwareSpec))
|
||||||
|
|
||||||
|
@autobump = T.let(true, T::Boolean)
|
||||||
|
@no_autobump_message = T.let(nil, T.nilable(T.any(String, Symbol)))
|
||||||
|
|
||||||
@force_bottle = T.let(force_bottle, T::Boolean)
|
@force_bottle = T.let(force_bottle, T::Boolean)
|
||||||
|
|
||||||
@tap = T.let(tap, T.nilable(Tap))
|
@tap = T.let(tap, T.nilable(Tap))
|
||||||
@ -474,6 +485,23 @@ class Formula
|
|||||||
# @see .livecheckable?
|
# @see .livecheckable?
|
||||||
delegate livecheckable?: :"self.class"
|
delegate livecheckable?: :"self.class"
|
||||||
|
|
||||||
|
# Exclude the formula from autobump list.
|
||||||
|
# @!method no_autobump!
|
||||||
|
# @see .no_autobump!
|
||||||
|
delegate no_autobump!: :"self.class"
|
||||||
|
|
||||||
|
# Is the formula in autobump list?
|
||||||
|
# @!method autobump?
|
||||||
|
# @see .autobump?
|
||||||
|
delegate autobump?: :"self.class"
|
||||||
|
|
||||||
|
# Is no_autobump! method defined?
|
||||||
|
# @!method no_autobump_defined?
|
||||||
|
# @see .no_autobump_defined?
|
||||||
|
delegate no_autobump_defined?: :"self.class"
|
||||||
|
|
||||||
|
delegate no_autobump_message: :"self.class"
|
||||||
|
|
||||||
# Is a service specification defined for the software?
|
# Is a service specification defined for the software?
|
||||||
# @!method service?
|
# @!method service?
|
||||||
# @see .service?
|
# @see .service?
|
||||||
@ -2484,6 +2512,9 @@ class Formula
|
|||||||
"urls" => urls_hash,
|
"urls" => urls_hash,
|
||||||
"revision" => revision,
|
"revision" => revision,
|
||||||
"version_scheme" => version_scheme,
|
"version_scheme" => version_scheme,
|
||||||
|
"autobump" => autobump?,
|
||||||
|
"no_autobump_message" => no_autobump_message,
|
||||||
|
"skip_livecheck" => livecheck.skip?,
|
||||||
"bottle" => {},
|
"bottle" => {},
|
||||||
"pour_bottle_only_if" => self.class.pour_bottle_only_if&.to_s,
|
"pour_bottle_only_if" => self.class.pour_bottle_only_if&.to_s,
|
||||||
"keg_only" => keg_only?,
|
"keg_only" => keg_only?,
|
||||||
@ -4182,6 +4213,40 @@ class Formula
|
|||||||
@livecheck.instance_eval(&block)
|
@livecheck.instance_eval(&block)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Method that excludes the formula from the autobump list.
|
||||||
|
#
|
||||||
|
# TODO: limit this method to the official taps only (f.e. raise
|
||||||
|
# an error if `!tap.official?`)
|
||||||
|
#
|
||||||
|
# @api public
|
||||||
|
sig { params(because: T.any(String, Symbol)).void }
|
||||||
|
def no_autobump!(because:)
|
||||||
|
if because.is_a?(Symbol) && !NO_AUTOBUMP_REASONS_LIST.key?(because)
|
||||||
|
raise ArgumentError, "'because' argument should use valid symbol or a string!"
|
||||||
|
end
|
||||||
|
|
||||||
|
@no_autobump_defined = T.let(true, T.nilable(T::Boolean))
|
||||||
|
@no_autobump_message = T.let(because, T.nilable(T.any(String, Symbol)))
|
||||||
|
@autobump = T.let(false, T.nilable(T::Boolean))
|
||||||
|
end
|
||||||
|
|
||||||
|
# Is the formula in autobump list?
|
||||||
|
sig { returns(T::Boolean) }
|
||||||
|
def autobump?
|
||||||
|
@autobump != false # @autobump may be `nil`
|
||||||
|
end
|
||||||
|
|
||||||
|
# Is no_autobump! method defined?
|
||||||
|
sig { returns(T::Boolean) }
|
||||||
|
def no_autobump_defined? = @no_autobump_defined == true
|
||||||
|
|
||||||
|
# Message that explains why the formula was excluded from autobump list.
|
||||||
|
# Returns `nil` if no message is specified.
|
||||||
|
#
|
||||||
|
# @see .no_autobump!
|
||||||
|
sig { returns(T.nilable(T.any(String, Symbol))) }
|
||||||
|
attr_reader :no_autobump_message
|
||||||
|
|
||||||
# Service can be used to define services.
|
# Service can be used to define services.
|
||||||
# This method evaluates the DSL specified in the service block of the
|
# This method evaluates the DSL specified in the service block of the
|
||||||
# {Formula} (if it exists) and sets the instance variables of a Service
|
# {Formula} (if it exists) and sets the instance variables of a Service
|
||||||
|
@ -291,6 +291,10 @@ module Formulary
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if (because = json_formula["no_autobump_msg"])
|
||||||
|
no_autobump!(because:)
|
||||||
|
end
|
||||||
|
|
||||||
bottles_stable = json_formula["bottle"]["stable"].presence
|
bottles_stable = json_formula["bottle"]["stable"].presence
|
||||||
|
|
||||||
if bottles_stable
|
if bottles_stable
|
||||||
|
@ -30,6 +30,9 @@ class Cask::Cask
|
|||||||
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
|
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
|
||||||
def auto_updates(*args, &block); end
|
def auto_updates(*args, &block); end
|
||||||
|
|
||||||
|
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
|
||||||
|
def autobump?(*args, &block); end
|
||||||
|
|
||||||
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
|
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
|
||||||
def bash_completion(*args, &block); end
|
def bash_completion(*args, &block); end
|
||||||
|
|
||||||
@ -141,6 +144,9 @@ class Cask::Cask
|
|||||||
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
|
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
|
||||||
def name(*args, &block); end
|
def name(*args, &block); end
|
||||||
|
|
||||||
|
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
|
||||||
|
def no_autobump_message(*args, &block); end
|
||||||
|
|
||||||
sig { params(args: T.untyped, block: T.untyped).returns(T.nilable(MacOSVersion)) }
|
sig { params(args: T.untyped, block: T.untyped).returns(T.nilable(MacOSVersion)) }
|
||||||
def on_system_block_min_os(*args, &block); end
|
def on_system_block_min_os(*args, &block); end
|
||||||
|
|
||||||
|
@ -6,6 +6,9 @@
|
|||||||
|
|
||||||
|
|
||||||
class Formula
|
class Formula
|
||||||
|
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
|
||||||
|
def autobump?(*args, &block); end
|
||||||
|
|
||||||
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
|
sig { params(args: T.untyped, block: T.untyped).returns(T.untyped) }
|
||||||
def allow_network_access!(*args, &block); end
|
def allow_network_access!(*args, &block); end
|
||||||
|
|
||||||
|
@ -985,11 +985,25 @@ class Tap
|
|||||||
# Array with autobump names
|
# Array with autobump names
|
||||||
sig { returns(T::Array[String]) }
|
sig { returns(T::Array[String]) }
|
||||||
def autobump
|
def autobump
|
||||||
@autobump ||= if (autobump_file = path/HOMEBREW_TAP_AUTOBUMP_FILE).file?
|
autobump_packages = if core_cask_tap?
|
||||||
autobump_file.readlines(chomp: true)
|
Homebrew::API::Cask.all_casks
|
||||||
else
|
else
|
||||||
[]
|
Homebrew::API::Formula.all_formulae
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@autobump ||= autobump_packages.select do |_, p|
|
||||||
|
p["autobump"] == true && !p["skip_livecheck"] && !(p["deprecated"] || p["disabled"])
|
||||||
|
end.keys
|
||||||
|
|
||||||
|
if @autobump.empty?
|
||||||
|
@autobump = if (autobump_file = path/HOMEBREW_TAP_AUTOBUMP_FILE).file?
|
||||||
|
autobump_file.readlines(chomp: true)
|
||||||
|
else
|
||||||
|
[]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
@autobump
|
||||||
end
|
end
|
||||||
|
|
||||||
# Whether this {Tap} allows running bump commands on the given {Formula} or {Cask}.
|
# Whether this {Tap} allows running bump commands on the given {Formula} or {Cask}.
|
||||||
|
@ -155,6 +155,25 @@ RSpec.describe Cask::DSL, :cask do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "no_autobump! stanze" do
|
||||||
|
it "returns true if no_autobump! is not set" do
|
||||||
|
expect(cask.autobump?).to be(true)
|
||||||
|
end
|
||||||
|
|
||||||
|
context "when no_autobump! is set" do
|
||||||
|
let(:cask) do
|
||||||
|
Cask::Cask.new("checksum-cask") do
|
||||||
|
no_autobump! because: "some reason"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns false" do
|
||||||
|
expect(cask.autobump?).to be(false)
|
||||||
|
expect(cask.no_autobump_message).to eq("some reason")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe "language stanza" do
|
describe "language stanza" do
|
||||||
context "when language is set explicitly" do
|
context "when language is set explicitly" do
|
||||||
subject(:cask) do
|
subject(:cask) do
|
||||||
|
@ -16,6 +16,9 @@
|
|||||||
"user_agent": ":fake"
|
"user_agent": ":fake"
|
||||||
},
|
},
|
||||||
"version": "1.2.3",
|
"version": "1.2.3",
|
||||||
|
"autobump": true,
|
||||||
|
"no_autobump_message": null,
|
||||||
|
"skip_livecheck": false,
|
||||||
"installed": null,
|
"installed": null,
|
||||||
"installed_time": null,
|
"installed_time": null,
|
||||||
"bundle_version": null,
|
"bundle_version": null,
|
||||||
|
@ -652,6 +652,7 @@ _brew_bundle() {
|
|||||||
__brewcomp "
|
__brewcomp "
|
||||||
--all
|
--all
|
||||||
--cask
|
--cask
|
||||||
|
--check
|
||||||
--cleanup
|
--cleanup
|
||||||
--debug
|
--debug
|
||||||
--describe
|
--describe
|
||||||
|
@ -507,6 +507,7 @@ __fish_brew_complete_sub_cmd 'bundle' 'env'
|
|||||||
__fish_brew_complete_sub_cmd 'bundle' 'edit'
|
__fish_brew_complete_sub_cmd 'bundle' 'edit'
|
||||||
__fish_brew_complete_arg 'bundle' -l all -d '`list` all dependencies'
|
__fish_brew_complete_arg 'bundle' -l all -d '`list` all dependencies'
|
||||||
__fish_brew_complete_arg 'bundle' -l cask -d '`list` or `dump` Homebrew cask dependencies'
|
__fish_brew_complete_arg 'bundle' -l cask -d '`list` or `dump` Homebrew cask dependencies'
|
||||||
|
__fish_brew_complete_arg 'bundle' -l check -d 'Check that all dependencies in the Brewfile are installed before running `exec`, `sh`, or `env`'
|
||||||
__fish_brew_complete_arg 'bundle' -l cleanup -d '`install` performs cleanup operation, same as running `cleanup --force`. This is enabled by default if `$HOMEBREW_BUNDLE_INSTALL_CLEANUP` is set and `--global` is passed'
|
__fish_brew_complete_arg 'bundle' -l cleanup -d '`install` performs cleanup operation, same as running `cleanup --force`. This is enabled by default if `$HOMEBREW_BUNDLE_INSTALL_CLEANUP` is set and `--global` is passed'
|
||||||
__fish_brew_complete_arg 'bundle' -l debug -d 'Display any debugging information'
|
__fish_brew_complete_arg 'bundle' -l debug -d 'Display any debugging information'
|
||||||
__fish_brew_complete_arg 'bundle' -l describe -d '`dump` adds a description comment above each line, unless the dependency does not have a description. This is enabled by default if `$HOMEBREW_BUNDLE_DUMP_DESCRIBE` is set'
|
__fish_brew_complete_arg 'bundle' -l describe -d '`dump` adds a description comment above each line, unless the dependency does not have a description. This is enabled by default if `$HOMEBREW_BUNDLE_DUMP_DESCRIBE` is set'
|
||||||
|
@ -540,14 +540,14 @@ _brew_bump() {
|
|||||||
'--full-name[Print formulae/casks with fully-qualified names]' \
|
'--full-name[Print formulae/casks with fully-qualified names]' \
|
||||||
'--help[Show this message]' \
|
'--help[Show this message]' \
|
||||||
'(--tap --eval-all --auto)--installed[Check formulae and casks that are currently installed]' \
|
'(--tap --eval-all --auto)--installed[Check formulae and casks that are currently installed]' \
|
||||||
'--no-autobump[Ignore formulae/casks in autobump list (official repositories only)]' \
|
'(--tap)--no-autobump[Ignore formulae/casks in autobump list (official repositories only)]' \
|
||||||
'--no-fork[Don'\''t try to fork the repository]' \
|
'--no-fork[Don'\''t try to fork the repository]' \
|
||||||
'(--open-pr)--no-pull-requests[Do not retrieve pull requests from GitHub]' \
|
'(--open-pr)--no-pull-requests[Do not retrieve pull requests from GitHub]' \
|
||||||
'(--no-pull-requests)--open-pr[Open a pull request for the new version if none have been opened yet]' \
|
'(--no-pull-requests)--open-pr[Open a pull request for the new version if none have been opened yet]' \
|
||||||
'--quiet[Make some output more quiet]' \
|
'--quiet[Make some output more quiet]' \
|
||||||
'--repology[Use Repology to check for outdated packages]' \
|
'--repology[Use Repology to check for outdated packages]' \
|
||||||
'--start-with[Letter or word that the list of package results should alphabetically follow]' \
|
'--start-with[Letter or word that the list of package results should alphabetically follow]' \
|
||||||
'(--installed --no-auto)--tap[Check formulae and casks within the given tap, specified as user`/`repo]' \
|
'(--installed --no-autobump)--tap[Check formulae and casks within the given tap, specified as user`/`repo]' \
|
||||||
'--verbose[Make some output more verbose]' \
|
'--verbose[Make some output more verbose]' \
|
||||||
- formula \
|
- formula \
|
||||||
'(--cask)--formula[Check only formulae]' \
|
'(--cask)--formula[Check only formulae]' \
|
||||||
@ -650,6 +650,7 @@ _brew_bundle() {
|
|||||||
_arguments \
|
_arguments \
|
||||||
'(--no-vscode)--all[`list` all dependencies]' \
|
'(--no-vscode)--all[`list` all dependencies]' \
|
||||||
'--cask[`list` or `dump` Homebrew cask dependencies]' \
|
'--cask[`list` or `dump` Homebrew cask dependencies]' \
|
||||||
|
'--check[Check that all dependencies in the Brewfile are installed before running `exec`, `sh`, or `env`]' \
|
||||||
'--cleanup[`install` performs cleanup operation, same as running `cleanup --force`. This is enabled by default if `$HOMEBREW_BUNDLE_INSTALL_CLEANUP` is set and `--global` is passed]' \
|
'--cleanup[`install` performs cleanup operation, same as running `cleanup --force`. This is enabled by default if `$HOMEBREW_BUNDLE_INSTALL_CLEANUP` is set and `--global` is passed]' \
|
||||||
'--debug[Display any debugging information]' \
|
'--debug[Display any debugging information]' \
|
||||||
'--describe[`dump` adds a description comment above each line, unless the dependency does not have a description. This is enabled by default if `$HOMEBREW_BUNDLE_DUMP_DESCRIBE` is set]' \
|
'--describe[`dump` adds a description comment above each line, unless the dependency does not have a description. This is enabled by default if `$HOMEBREW_BUNDLE_DUMP_DESCRIBE` is set]' \
|
||||||
|
@ -199,7 +199,7 @@ By default, only Homebrew formula dependencies are listed.
|
|||||||
of the corresponding type. Passing `--formula` also removes matches against
|
of the corresponding type. Passing `--formula` also removes matches against
|
||||||
formula aliases and old formula names.
|
formula aliases and old formula names.
|
||||||
|
|
||||||
`brew bundle exec` *`command`*
|
`brew bundle exec` \[--check\] *`command`*
|
||||||
|
|
||||||
: Run an external command in an isolated build environment based on the
|
: Run an external command in an isolated build environment based on the
|
||||||
`Brewfile` dependencies.
|
`Brewfile` dependencies.
|
||||||
@ -210,11 +210,11 @@ commands like `bundle install`, `npm install`, etc. It will also add compiler
|
|||||||
flags which will help with finding keg-only dependencies like `openssl`,
|
flags which will help with finding keg-only dependencies like `openssl`,
|
||||||
`icu4c`, etc.
|
`icu4c`, etc.
|
||||||
|
|
||||||
`brew bundle sh`
|
`brew bundle sh` \[--check\]
|
||||||
|
|
||||||
: Run your shell in a `brew bundle exec` environment.
|
: Run your shell in a `brew bundle exec` environment.
|
||||||
|
|
||||||
`brew bundle env`
|
`brew bundle env` \[--check\]
|
||||||
|
|
||||||
: Print the environment variables that would be set in a `brew bundle exec`
|
: Print the environment variables that would be set in a `brew bundle exec`
|
||||||
environment.
|
environment.
|
||||||
@ -319,6 +319,11 @@ flags which will help with finding keg-only dependencies like `openssl`,
|
|||||||
|
|
||||||
: `cleanup` casks using the `zap` command instead of `uninstall`.
|
: `cleanup` casks using the `zap` command instead of `uninstall`.
|
||||||
|
|
||||||
|
`--check`
|
||||||
|
|
||||||
|
: Check that all dependencies in the Brewfile are installed before running
|
||||||
|
`exec`, `sh`, or `env`.
|
||||||
|
|
||||||
### `casks`
|
### `casks`
|
||||||
|
|
||||||
List all locally installable casks including short names.
|
List all locally installable casks including short names.
|
||||||
|
@ -124,15 +124,15 @@ Add entries to your \fBBrewfile\fP\&\. Adds formulae by default\. Use \fB\-\-cas
|
|||||||
\fBbrew bundle remove\fP \fIname\fP [\.\.\.]
|
\fBbrew bundle remove\fP \fIname\fP [\.\.\.]
|
||||||
Remove entries that match \fBname\fP from your \fBBrewfile\fP\&\. Use \fB\-\-formula\fP, \fB\-\-cask\fP, \fB\-\-tap\fP, \fB\-\-mas\fP, \fB\-\-whalebrew\fP or \fB\-\-vscode\fP to remove only entries of the corresponding type\. Passing \fB\-\-formula\fP also removes matches against formula aliases and old formula names\.
|
Remove entries that match \fBname\fP from your \fBBrewfile\fP\&\. Use \fB\-\-formula\fP, \fB\-\-cask\fP, \fB\-\-tap\fP, \fB\-\-mas\fP, \fB\-\-whalebrew\fP or \fB\-\-vscode\fP to remove only entries of the corresponding type\. Passing \fB\-\-formula\fP also removes matches against formula aliases and old formula names\.
|
||||||
.TP
|
.TP
|
||||||
\fBbrew bundle exec\fP \fIcommand\fP
|
\fBbrew bundle exec\fP [\-\-check] \fIcommand\fP
|
||||||
Run an external command in an isolated build environment based on the \fBBrewfile\fP dependencies\.
|
Run an external command in an isolated build environment based on the \fBBrewfile\fP dependencies\.
|
||||||
.P
|
.P
|
||||||
This sanitized build environment ignores unrequested dependencies, which makes sure that things you didn\[u2019]t specify in your \fBBrewfile\fP won\[u2019]t get picked up by commands like \fBbundle install\fP, \fBnpm install\fP, etc\. It will also add compiler flags which will help with finding keg\-only dependencies like \fBopenssl\fP, \fBicu4c\fP, etc\.
|
This sanitized build environment ignores unrequested dependencies, which makes sure that things you didn\[u2019]t specify in your \fBBrewfile\fP won\[u2019]t get picked up by commands like \fBbundle install\fP, \fBnpm install\fP, etc\. It will also add compiler flags which will help with finding keg\-only dependencies like \fBopenssl\fP, \fBicu4c\fP, etc\.
|
||||||
.TP
|
.TP
|
||||||
\fBbrew bundle sh\fP
|
\fBbrew bundle sh\fP [\-\-check]
|
||||||
Run your shell in a \fBbrew bundle exec\fP environment\.
|
Run your shell in a \fBbrew bundle exec\fP environment\.
|
||||||
.TP
|
.TP
|
||||||
\fBbrew bundle env\fP
|
\fBbrew bundle env\fP [\-\-check]
|
||||||
Print the environment variables that would be set in a \fBbrew bundle exec\fP environment\.
|
Print the environment variables that would be set in a \fBbrew bundle exec\fP environment\.
|
||||||
.TP
|
.TP
|
||||||
\fB\-\-file\fP
|
\fB\-\-file\fP
|
||||||
@ -197,6 +197,9 @@ Temporarily start services while running the \fBexec\fP or \fBsh\fP command\. Th
|
|||||||
.TP
|
.TP
|
||||||
\fB\-\-zap\fP
|
\fB\-\-zap\fP
|
||||||
\fBcleanup\fP casks using the \fBzap\fP command instead of \fBuninstall\fP\&\.
|
\fBcleanup\fP casks using the \fBzap\fP command instead of \fBuninstall\fP\&\.
|
||||||
|
.TP
|
||||||
|
\fB\-\-check\fP
|
||||||
|
Check that all dependencies in the Brewfile are installed before running \fBexec\fP, \fBsh\fP, or \fBenv\fP\&\.
|
||||||
.SS "\fBcasks\fP"
|
.SS "\fBcasks\fP"
|
||||||
List all locally installable casks including short names\.
|
List all locally installable casks including short names\.
|
||||||
.SS "\fBcleanup\fP \fR[\fIoptions\fP] \fR[\fIformula\fP|\fIcask\fP \.\.\.]"
|
.SS "\fBcleanup\fP \fR[\fIoptions\fP] \fR[\fIformula\fP|\fIcask\fP \.\.\.]"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user