Merge pull request #13375 from MikeMcQuaid/modified_formulae
cmd/update-report: use better wording when appropriate.
This commit is contained in:
commit
05e8ed916a
@ -1,7 +1,6 @@
|
|||||||
# typed: false
|
# typed: false
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "formula_versions"
|
|
||||||
require "migrator"
|
require "migrator"
|
||||||
require "formulary"
|
require "formulary"
|
||||||
require "descriptions"
|
require "descriptions"
|
||||||
@ -204,6 +203,7 @@ module Homebrew
|
|||||||
hub.dump(updated_formula_report: !args.auto_update?) unless args.quiet?
|
hub.dump(updated_formula_report: !args.auto_update?) unless args.quiet?
|
||||||
hub.reporters.each(&:migrate_tap_migration)
|
hub.reporters.each(&:migrate_tap_migration)
|
||||||
hub.reporters.each { |r| r.migrate_formula_rename(force: args.force?, verbose: args.verbose?) }
|
hub.reporters.each { |r| r.migrate_formula_rename(force: args.force?, verbose: args.verbose?) }
|
||||||
|
|
||||||
CacheStoreDatabase.use(:descriptions) do |db|
|
CacheStoreDatabase.use(:descriptions) do |db|
|
||||||
DescriptionCacheStore.new(db)
|
DescriptionCacheStore.new(db)
|
||||||
.update_from_report!(hub)
|
.update_from_report!(hub)
|
||||||
@ -212,32 +212,6 @@ module Homebrew
|
|||||||
CaskDescriptionCacheStore.new(db)
|
CaskDescriptionCacheStore.new(db)
|
||||||
.update_from_report!(hub)
|
.update_from_report!(hub)
|
||||||
end
|
end
|
||||||
|
|
||||||
if !args.auto_update? && !args.quiet?
|
|
||||||
outdated_formulae = Formula.installed.count(&:outdated?)
|
|
||||||
outdated_casks = Cask::Caskroom.casks.count(&:outdated?)
|
|
||||||
update_pronoun = if (outdated_formulae + outdated_casks) == 1
|
|
||||||
"it"
|
|
||||||
else
|
|
||||||
"them"
|
|
||||||
end
|
|
||||||
msg = ""
|
|
||||||
if outdated_formulae.positive?
|
|
||||||
msg += "#{Tty.bold}#{outdated_formulae}#{Tty.reset} outdated #{"formula".pluralize(outdated_formulae)}"
|
|
||||||
end
|
|
||||||
if outdated_casks.positive?
|
|
||||||
msg += " and " if msg.present?
|
|
||||||
msg += "#{Tty.bold}#{outdated_casks}#{Tty.reset} outdated #{"cask".pluralize(outdated_casks)}"
|
|
||||||
end
|
|
||||||
if msg.present?
|
|
||||||
puts
|
|
||||||
puts <<~EOS
|
|
||||||
You have #{msg} installed.
|
|
||||||
You can upgrade #{update_pronoun} with #{Tty.bold}brew upgrade#{Tty.reset}
|
|
||||||
or list #{update_pronoun} with #{Tty.bold}brew outdated#{Tty.reset}.
|
|
||||||
EOS
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
puts if args.auto_update?
|
puts if args.auto_update?
|
||||||
elsif !args.auto_update? && !ENV["HOMEBREW_UPDATE_FAILED"] && !ENV["HOMEBREW_MIGRATE_LINUXBREW_FORMULAE"]
|
elsif !args.auto_update? && !ENV["HOMEBREW_UPDATE_FAILED"] && !ENV["HOMEBREW_MIGRATE_LINUXBREW_FORMULAE"]
|
||||||
@ -369,24 +343,6 @@ class Reporter
|
|||||||
when "M"
|
when "M"
|
||||||
name = tap.formula_file_to_name(src)
|
name = tap.formula_file_to_name(src)
|
||||||
|
|
||||||
# Skip filtering unchanged formulae versions by default (as it's slow).
|
|
||||||
unless Homebrew::EnvConfig.update_report_version_changed_formulae?
|
|
||||||
@report[:M] << name
|
|
||||||
next
|
|
||||||
end
|
|
||||||
|
|
||||||
begin
|
|
||||||
formula = Formulary.factory(tap.path/src)
|
|
||||||
new_version = formula.pkg_version
|
|
||||||
old_version = FormulaVersions.new(formula).formula_at_revision(@initial_revision, &:pkg_version)
|
|
||||||
next if new_version == old_version
|
|
||||||
rescue FormulaUnavailableError
|
|
||||||
# Don't care if the formula isn't available right now.
|
|
||||||
nil
|
|
||||||
rescue Exception => e # rubocop:disable Lint/RescueException
|
|
||||||
onoe "#{e.message}\n#{e.backtrace.join "\n"}" if Homebrew::EnvConfig.developer?
|
|
||||||
end
|
|
||||||
|
|
||||||
@report[:M] << name
|
@report[:M] << name
|
||||||
when /^R\d{0,3}/
|
when /^R\d{0,3}/
|
||||||
src_full_name = tap.formula_file_to_name(src)
|
src_full_name = tap.formula_file_to_name(src)
|
||||||
@ -571,7 +527,7 @@ class ReporterHub
|
|||||||
@reporters = []
|
@reporters = []
|
||||||
end
|
end
|
||||||
|
|
||||||
def select_formula(key)
|
def select_formula_or_cask(key)
|
||||||
@hash.fetch(key, [])
|
@hash.fetch(key, [])
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -586,70 +542,155 @@ class ReporterHub
|
|||||||
def dump(updated_formula_report: true)
|
def dump(updated_formula_report: true)
|
||||||
# Key Legend: Added (A), Copied (C), Deleted (D), Modified (M), Renamed (R)
|
# Key Legend: Added (A), Copied (C), Deleted (D), Modified (M), Renamed (R)
|
||||||
|
|
||||||
dump_formula_report :A, "New Formulae"
|
unless Homebrew::EnvConfig.update_report_all_formulae?
|
||||||
if updated_formula_report
|
dump_formula_or_cask_report :A, "New Formulae"
|
||||||
dump_formula_report :M, "Updated Formulae"
|
dump_formula_or_cask_report :AC, "New Casks"
|
||||||
else
|
dump_formula_or_cask_report :R, "Renamed Formulae"
|
||||||
updated = select_formula(:M).count
|
|
||||||
ohai "Updated Formulae", "Updated #{updated} #{"formula".pluralize(updated)}." if updated.positive?
|
|
||||||
end
|
end
|
||||||
dump_formula_report :R, "Renamed Formulae"
|
|
||||||
dump_formula_report :D, "Deleted Formulae"
|
dump_formula_or_cask_report :D, "Deleted Formulae"
|
||||||
dump_formula_report :AC, "New Casks"
|
dump_formula_or_cask_report :DC, "Deleted Casks"
|
||||||
if updated_formula_report
|
|
||||||
dump_formula_report :MC, "Updated Casks"
|
outdated_formulae = nil
|
||||||
|
outdated_casks = nil
|
||||||
|
|
||||||
|
if updated_formula_report && Homebrew::EnvConfig.update_report_all_formulae?
|
||||||
|
dump_formula_or_cask_report :M, "Modified Formulae"
|
||||||
|
dump_formula_or_cask_report :MC, "Modified Casks"
|
||||||
|
elsif updated_formula_report
|
||||||
|
outdated_formulae = Formula.installed.select(&:outdated?).map(&:name)
|
||||||
|
output_dump_formula_or_cask_report "Outdated Formulae", outdated_formulae
|
||||||
|
|
||||||
|
outdated_casks = Cask::Caskroom.casks.select(&:outdated?).map(&:token)
|
||||||
|
output_dump_formula_or_cask_report "Outdated Casks", outdated_casks
|
||||||
|
elsif Homebrew::EnvConfig.update_report_all_formulae?
|
||||||
|
if (changed_formulae = select_formula_or_cask(:M).count) && changed_formulae.positive?
|
||||||
|
ohai "Modified Formulae", "Modified #{changed_formulae} #{"formula".pluralize(changed_formulae)}."
|
||||||
|
end
|
||||||
|
|
||||||
|
if (changed_casks = select_formula_or_cask(:MC).count) && changed_casks.positive?
|
||||||
|
ohai "Modified Casks", "Modified #{changed_casks} #{"cask".pluralize(changed_casks)}."
|
||||||
|
end
|
||||||
else
|
else
|
||||||
updated = select_formula(:MC).count
|
outdated_formulae = Formula.installed.select(&:outdated?).map(&:name)
|
||||||
ohai "Updated Casks", "Updated #{updated} #{"cask".pluralize(updated)}." if updated.positive?
|
outdated_casks = Cask::Caskroom.casks.select(&:outdated?).map(&:token)
|
||||||
end
|
end
|
||||||
dump_formula_report :DC, "Deleted Casks"
|
|
||||||
|
return if outdated_formulae.blank? && outdated_casks.blank?
|
||||||
|
|
||||||
|
outdated_formulae = outdated_formulae.count
|
||||||
|
outdated_casks = outdated_casks.count
|
||||||
|
|
||||||
|
update_pronoun = if (outdated_formulae + outdated_casks) == 1
|
||||||
|
"it"
|
||||||
|
else
|
||||||
|
"them"
|
||||||
|
end
|
||||||
|
|
||||||
|
msg = ""
|
||||||
|
|
||||||
|
if outdated_formulae.positive?
|
||||||
|
msg += "#{Tty.bold}#{outdated_formulae}#{Tty.reset} outdated #{"formula".pluralize(outdated_formulae)}"
|
||||||
|
end
|
||||||
|
|
||||||
|
if outdated_casks.positive?
|
||||||
|
msg += " and " if msg.present?
|
||||||
|
msg += "#{Tty.bold}#{outdated_casks}#{Tty.reset} outdated #{"cask".pluralize(outdated_casks)}"
|
||||||
|
end
|
||||||
|
|
||||||
|
return if msg.blank?
|
||||||
|
|
||||||
|
puts
|
||||||
|
puts <<~EOS
|
||||||
|
You have #{msg} installed.
|
||||||
|
You can upgrade #{update_pronoun} with #{Tty.bold}brew upgrade#{Tty.reset}
|
||||||
|
or list #{update_pronoun} with #{Tty.bold}brew outdated#{Tty.reset}.
|
||||||
|
EOS
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def dump_formula_report(key, title)
|
def dump_formula_or_cask_report(key, title)
|
||||||
only_installed = !Homebrew::EnvConfig.update_report_all_formulae?
|
report_all = Homebrew::EnvConfig.update_report_all_formulae?
|
||||||
|
|
||||||
formulae = select_formula(key).sort.map do |name, new_name|
|
formulae_or_casks = select_formula_or_cask(key).sort.map do |name, new_name|
|
||||||
# Format list items of renamed formulae
|
# Format list items of formulae
|
||||||
case key
|
case key
|
||||||
when :R
|
when :R
|
||||||
unless only_installed
|
if report_all
|
||||||
name = pretty_installed(name) if installed?(name)
|
name = pretty_installed(name) if installed?(name)
|
||||||
new_name = pretty_installed(new_name) if installed?(new_name)
|
new_name = pretty_installed(new_name) if installed?(new_name)
|
||||||
"#{name} -> #{new_name}"
|
"#{name} -> #{new_name}"
|
||||||
end
|
end
|
||||||
when :A
|
when :A
|
||||||
name if !only_installed && !installed?(name)
|
name if report_all && !installed?(name)
|
||||||
when :AC
|
when :AC
|
||||||
name.split("/").last if !only_installed && !cask_installed?(name)
|
name.split("/").last if report_all && !cask_installed?(name)
|
||||||
when :MC, :DC
|
when :MC
|
||||||
name = name.split("/").last
|
name = name.split("/").last
|
||||||
if cask_installed?(name)
|
if cask_installed?(name)
|
||||||
pretty_installed(name)
|
if cask_outdated?(name)
|
||||||
elsif !only_installed
|
pretty_outdated(name)
|
||||||
|
else
|
||||||
|
pretty_installed(name)
|
||||||
|
end
|
||||||
|
elsif report_all
|
||||||
|
name
|
||||||
|
end
|
||||||
|
when :DC
|
||||||
|
name = name.split("/").last
|
||||||
|
if cask_installed?(name)
|
||||||
|
pretty_uninstalled(name)
|
||||||
|
elsif report_all
|
||||||
|
name
|
||||||
|
end
|
||||||
|
when :M
|
||||||
|
if installed?(name)
|
||||||
|
if outdated?(name)
|
||||||
|
pretty_outdated(name)
|
||||||
|
else
|
||||||
|
pretty_installed(name)
|
||||||
|
end
|
||||||
|
elsif report_all
|
||||||
|
name
|
||||||
|
end
|
||||||
|
when :D
|
||||||
|
if installed?(name)
|
||||||
|
pretty_uninstalled(name)
|
||||||
|
elsif report_all
|
||||||
name
|
name
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if installed?(name)
|
raise ArgumentError, ":#{key} passed to dump_formula_or_cask_report!"
|
||||||
pretty_installed(name)
|
|
||||||
elsif !only_installed
|
|
||||||
name
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end.compact
|
end.compact
|
||||||
|
|
||||||
return if formulae.empty?
|
output_dump_formula_or_cask_report title, formulae_or_casks
|
||||||
|
end
|
||||||
|
|
||||||
# Dump formula list.
|
def output_dump_formula_or_cask_report(title, formulae_or_casks)
|
||||||
ohai title, Formatter.columns(formulae.sort)
|
return if formulae_or_casks.blank?
|
||||||
|
|
||||||
|
ohai title, Formatter.columns(formulae_or_casks.sort)
|
||||||
end
|
end
|
||||||
|
|
||||||
def installed?(formula)
|
def installed?(formula)
|
||||||
(HOMEBREW_CELLAR/formula.split("/").last).directory?
|
(HOMEBREW_CELLAR/formula.split("/").last).directory?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def outdated?(formula)
|
||||||
|
Formula[formula].outdated?
|
||||||
|
rescue FormulaUnavailableError
|
||||||
|
false
|
||||||
|
end
|
||||||
|
|
||||||
def cask_installed?(cask)
|
def cask_installed?(cask)
|
||||||
(Cask::Caskroom.path/cask).directory?
|
(Cask::Caskroom.path/cask).directory?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def cask_outdated?(cask)
|
||||||
|
Cask::CaskLoader.load(cask).outdated?
|
||||||
|
rescue Cask::CaskError
|
||||||
|
false
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -48,13 +48,13 @@ class DescriptionCacheStore < CacheStore
|
|||||||
return populate_if_empty! if database.empty?
|
return populate_if_empty! if database.empty?
|
||||||
return if report.empty?
|
return if report.empty?
|
||||||
|
|
||||||
renamings = report.select_formula(:R)
|
renamings = report.select_formula_or_cask(:R)
|
||||||
alterations = report.select_formula(:A) +
|
alterations = report.select_formula_or_cask(:A) +
|
||||||
report.select_formula(:M) +
|
report.select_formula_or_cask(:M) +
|
||||||
renamings.map(&:last)
|
renamings.map(&:last)
|
||||||
|
|
||||||
update_from_formula_names!(alterations)
|
update_from_formula_names!(alterations)
|
||||||
delete_from_formula_names!(report.select_formula(:D) +
|
delete_from_formula_names!(report.select_formula_or_cask(:D) +
|
||||||
renamings.map(&:first))
|
renamings.map(&:first))
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -114,11 +114,11 @@ class CaskDescriptionCacheStore < DescriptionCacheStore
|
|||||||
return populate_if_empty! if database.empty?
|
return populate_if_empty! if database.empty?
|
||||||
return if report.empty?
|
return if report.empty?
|
||||||
|
|
||||||
alterations = report.select_formula(:AC) +
|
alterations = report.select_formula_or_cask(:AC) +
|
||||||
report.select_formula(:MC)
|
report.select_formula_or_cask(:MC)
|
||||||
|
|
||||||
update_from_cask_tokens!(alterations)
|
update_from_cask_tokens!(alterations)
|
||||||
delete_from_cask_tokens!(report.select_formula(:DC))
|
delete_from_cask_tokens!(report.select_formula_or_cask(:DC))
|
||||||
end
|
end
|
||||||
|
|
||||||
# Use an array of cask tokens to update the {CaskDescriptionCacheStore}.
|
# Use an array of cask tokens to update the {CaskDescriptionCacheStore}.
|
||||||
|
|||||||
@ -11,15 +11,15 @@ module Homebrew
|
|||||||
module_function
|
module_function
|
||||||
|
|
||||||
ENVS = {
|
ENVS = {
|
||||||
HOMEBREW_ADDITIONAL_GOOGLE_ANALYTICS_ID: {
|
HOMEBREW_ADDITIONAL_GOOGLE_ANALYTICS_ID: {
|
||||||
description: "Additional Google Analytics tracking ID to emit user behaviour analytics to. " \
|
description: "Additional Google Analytics tracking ID to emit user behaviour analytics to. " \
|
||||||
"For more information, see: <https://docs.brew.sh/Analytics>",
|
"For more information, see: <https://docs.brew.sh/Analytics>",
|
||||||
},
|
},
|
||||||
HOMEBREW_ARCH: {
|
HOMEBREW_ARCH: {
|
||||||
description: "Linux only: Pass this value to a type name representing the compiler's `-march` option.",
|
description: "Linux only: Pass this value to a type name representing the compiler's `-march` option.",
|
||||||
default: "native",
|
default: "native",
|
||||||
},
|
},
|
||||||
HOMEBREW_ARTIFACT_DOMAIN: {
|
HOMEBREW_ARTIFACT_DOMAIN: {
|
||||||
description: "Prefix all download URLs, including those for bottles, with this value. " \
|
description: "Prefix all download URLs, including those for bottles, with this value. " \
|
||||||
"For example, `HOMEBREW_ARTIFACT_DOMAIN=http://localhost:8080` will cause a " \
|
"For example, `HOMEBREW_ARTIFACT_DOMAIN=http://localhost:8080` will cause a " \
|
||||||
"formula with the URL `https://example.com/foo.tar.gz` to instead download from " \
|
"formula with the URL `https://example.com/foo.tar.gz` to instead download from " \
|
||||||
@ -30,26 +30,26 @@ module Homebrew
|
|||||||
"to instead be downloaded from " \
|
"to instead be downloaded from " \
|
||||||
"`http://localhost:8080/v2/homebrew/core/gettext/manifests/0.21`",
|
"`http://localhost:8080/v2/homebrew/core/gettext/manifests/0.21`",
|
||||||
},
|
},
|
||||||
HOMEBREW_AUTO_UPDATE_SECS: {
|
HOMEBREW_AUTO_UPDATE_SECS: {
|
||||||
description: "Run `brew update` once every `HOMEBREW_AUTO_UPDATE_SECS` seconds before some commands, " \
|
description: "Run `brew update` once every `HOMEBREW_AUTO_UPDATE_SECS` seconds before some commands, " \
|
||||||
"e.g. `brew install`, `brew upgrade` and `brew tap`. Alternatively, " \
|
"e.g. `brew install`, `brew upgrade` and `brew tap`. Alternatively, " \
|
||||||
"disable auto-update entirely with HOMEBREW_NO_AUTO_UPDATE.",
|
"disable auto-update entirely with HOMEBREW_NO_AUTO_UPDATE.",
|
||||||
default: 300,
|
default: 300,
|
||||||
},
|
},
|
||||||
HOMEBREW_BAT: {
|
HOMEBREW_BAT: {
|
||||||
description: "If set, use `bat` for the `brew cat` command.",
|
description: "If set, use `bat` for the `brew cat` command.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_BAT_CONFIG_PATH: {
|
HOMEBREW_BAT_CONFIG_PATH: {
|
||||||
description: "Use this as the `bat` configuration file.",
|
description: "Use this as the `bat` configuration file.",
|
||||||
default_text: "`$HOME/.config/bat/config`.",
|
default_text: "`$HOME/.config/bat/config`.",
|
||||||
},
|
},
|
||||||
HOMEBREW_BOOTSNAP: {
|
HOMEBREW_BOOTSNAP: {
|
||||||
description: "If set, use Bootsnap to speed up repeated `brew` calls. "\
|
description: "If set, use Bootsnap to speed up repeated `brew` calls. "\
|
||||||
"A no-op when using Homebrew's vendored, relocatable Ruby on macOS (as it doesn't work).",
|
"A no-op when using Homebrew's vendored, relocatable Ruby on macOS (as it doesn't work).",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_BOTTLE_DOMAIN: {
|
HOMEBREW_BOTTLE_DOMAIN: {
|
||||||
description: "Use this URL as the download mirror for bottles. " \
|
description: "Use this URL as the download mirror for bottles. " \
|
||||||
"If bottles at that URL are temporarily unavailable, " \
|
"If bottles at that URL are temporarily unavailable, " \
|
||||||
"the default bottle domain will be used as a fallback mirror. " \
|
"the default bottle domain will be used as a fallback mirror. " \
|
||||||
@ -60,78 +60,78 @@ module Homebrew
|
|||||||
default_text: "`https://ghcr.io/v2/homebrew/core`.",
|
default_text: "`https://ghcr.io/v2/homebrew/core`.",
|
||||||
default: HOMEBREW_BOTTLE_DEFAULT_DOMAIN,
|
default: HOMEBREW_BOTTLE_DEFAULT_DOMAIN,
|
||||||
},
|
},
|
||||||
HOMEBREW_BREW_GIT_REMOTE: {
|
HOMEBREW_BREW_GIT_REMOTE: {
|
||||||
description: "Use this URL as the Homebrew/brew `git`(1) remote.",
|
description: "Use this URL as the Homebrew/brew `git`(1) remote.",
|
||||||
default: HOMEBREW_BREW_DEFAULT_GIT_REMOTE,
|
default: HOMEBREW_BREW_DEFAULT_GIT_REMOTE,
|
||||||
},
|
},
|
||||||
HOMEBREW_BROWSER: {
|
HOMEBREW_BROWSER: {
|
||||||
description: "Use this as the browser when opening project homepages.",
|
description: "Use this as the browser when opening project homepages.",
|
||||||
default_text: "`$BROWSER` or the OS's default browser.",
|
default_text: "`$BROWSER` or the OS's default browser.",
|
||||||
},
|
},
|
||||||
HOMEBREW_CACHE: {
|
HOMEBREW_CACHE: {
|
||||||
description: "Use this directory as the download cache.",
|
description: "Use this directory as the download cache.",
|
||||||
default_text: "macOS: `$HOME/Library/Caches/Homebrew`, " \
|
default_text: "macOS: `$HOME/Library/Caches/Homebrew`, " \
|
||||||
"Linux: `$XDG_CACHE_HOME/Homebrew` or `$HOME/.cache/Homebrew`.",
|
"Linux: `$XDG_CACHE_HOME/Homebrew` or `$HOME/.cache/Homebrew`.",
|
||||||
default: HOMEBREW_DEFAULT_CACHE,
|
default: HOMEBREW_DEFAULT_CACHE,
|
||||||
},
|
},
|
||||||
HOMEBREW_CASK_OPTS: {
|
HOMEBREW_CASK_OPTS: {
|
||||||
description: "Append these options to all `cask` commands. All `--*dir` options, " \
|
description: "Append these options to all `cask` commands. All `--*dir` options, " \
|
||||||
"`--language`, `--require-sha`, `--no-quarantine` and `--no-binaries` are supported. " \
|
"`--language`, `--require-sha`, `--no-quarantine` and `--no-binaries` are supported. " \
|
||||||
"For example, you might add something like the following to your " \
|
"For example, you might add something like the following to your " \
|
||||||
"`~/.profile`, `~/.bash_profile`, or `~/.zshenv`:\n\n" \
|
"`~/.profile`, `~/.bash_profile`, or `~/.zshenv`:\n\n" \
|
||||||
' `export HOMEBREW_CASK_OPTS="--appdir=~/Applications --fontdir=/Library/Fonts"`',
|
' `export HOMEBREW_CASK_OPTS="--appdir=~/Applications --fontdir=/Library/Fonts"`',
|
||||||
},
|
},
|
||||||
HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS: {
|
HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS: {
|
||||||
description: "If set, `brew install`, `brew upgrade` and `brew reinstall` will cleanup all formulae " \
|
description: "If set, `brew install`, `brew upgrade` and `brew reinstall` will cleanup all formulae " \
|
||||||
"when this number of days has passed.",
|
"when this number of days has passed.",
|
||||||
default: 30,
|
default: 30,
|
||||||
},
|
},
|
||||||
HOMEBREW_CLEANUP_MAX_AGE_DAYS: {
|
HOMEBREW_CLEANUP_MAX_AGE_DAYS: {
|
||||||
description: "Cleanup all cached files older than this many days.",
|
description: "Cleanup all cached files older than this many days.",
|
||||||
default: 120,
|
default: 120,
|
||||||
},
|
},
|
||||||
HOMEBREW_COLOR: {
|
HOMEBREW_COLOR: {
|
||||||
description: "If set, force colour output on non-TTY outputs.",
|
description: "If set, force colour output on non-TTY outputs.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_CORE_GIT_REMOTE: {
|
HOMEBREW_CORE_GIT_REMOTE: {
|
||||||
description: "Use this URL as the Homebrew/homebrew-core `git`(1) remote.",
|
description: "Use this URL as the Homebrew/homebrew-core `git`(1) remote.",
|
||||||
default_text: "`https://github.com/Homebrew/homebrew-core`.",
|
default_text: "`https://github.com/Homebrew/homebrew-core`.",
|
||||||
default: HOMEBREW_CORE_DEFAULT_GIT_REMOTE,
|
default: HOMEBREW_CORE_DEFAULT_GIT_REMOTE,
|
||||||
},
|
},
|
||||||
HOMEBREW_CURLRC: {
|
HOMEBREW_CURLRC: {
|
||||||
description: "If set, do not pass `--disable` when invoking `curl`(1), which disables the " \
|
description: "If set, do not pass `--disable` when invoking `curl`(1), which disables the " \
|
||||||
"use of `curlrc`.",
|
"use of `curlrc`.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_CURL_RETRIES: {
|
HOMEBREW_CURL_RETRIES: {
|
||||||
description: "Pass the given retry count to `--retry` when invoking `curl`(1).",
|
description: "Pass the given retry count to `--retry` when invoking `curl`(1).",
|
||||||
default: 3,
|
default: 3,
|
||||||
},
|
},
|
||||||
HOMEBREW_CURL_VERBOSE: {
|
HOMEBREW_CURL_VERBOSE: {
|
||||||
description: "If set, pass `--verbose` when invoking `curl`(1).",
|
description: "If set, pass `--verbose` when invoking `curl`(1).",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_DEVELOPER: {
|
HOMEBREW_DEVELOPER: {
|
||||||
description: "If set, tweak behaviour to be more relevant for Homebrew developers (active or " \
|
description: "If set, tweak behaviour to be more relevant for Homebrew developers (active or " \
|
||||||
"budding) by e.g. turning warnings into errors.",
|
"budding) by e.g. turning warnings into errors.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_DISABLE_LOAD_FORMULA: {
|
HOMEBREW_DISABLE_LOAD_FORMULA: {
|
||||||
description: "If set, refuse to load formulae. This is useful when formulae are not trusted (such " \
|
description: "If set, refuse to load formulae. This is useful when formulae are not trusted (such " \
|
||||||
"as in pull requests).",
|
"as in pull requests).",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_DISPLAY: {
|
HOMEBREW_DISPLAY: {
|
||||||
description: "Use this X11 display when opening a page in a browser, for example with " \
|
description: "Use this X11 display when opening a page in a browser, for example with " \
|
||||||
"`brew home`. Primarily useful on Linux.",
|
"`brew home`. Primarily useful on Linux.",
|
||||||
default_text: "`$DISPLAY`.",
|
default_text: "`$DISPLAY`.",
|
||||||
},
|
},
|
||||||
HOMEBREW_DISPLAY_INSTALL_TIMES: {
|
HOMEBREW_DISPLAY_INSTALL_TIMES: {
|
||||||
description: "If set, print install times for each formula at the end of the run.",
|
description: "If set, print install times for each formula at the end of the run.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_EDITOR: {
|
HOMEBREW_EDITOR: {
|
||||||
description: "Use this editor when editing a single formula, or several formulae in the " \
|
description: "Use this editor when editing a single formula, or several formulae in the " \
|
||||||
"same directory." \
|
"same directory." \
|
||||||
"\n\n *Note:* `brew edit` will open all of Homebrew as discontinuous files " \
|
"\n\n *Note:* `brew edit` will open all of Homebrew as discontinuous files " \
|
||||||
@ -139,35 +139,35 @@ module Homebrew
|
|||||||
"editors will do strange things in this case.",
|
"editors will do strange things in this case.",
|
||||||
default_text: "`$EDITOR` or `$VISUAL`.",
|
default_text: "`$EDITOR` or `$VISUAL`.",
|
||||||
},
|
},
|
||||||
HOMEBREW_FAIL_LOG_LINES: {
|
HOMEBREW_FAIL_LOG_LINES: {
|
||||||
description: "Output this many lines of output on formula `system` failures.",
|
description: "Output this many lines of output on formula `system` failures.",
|
||||||
default: 15,
|
default: 15,
|
||||||
},
|
},
|
||||||
HOMEBREW_FORBIDDEN_LICENSES: {
|
HOMEBREW_FORBIDDEN_LICENSES: {
|
||||||
description: "A space-separated list of licenses. Homebrew will refuse to install a " \
|
description: "A space-separated list of licenses. Homebrew will refuse to install a " \
|
||||||
"formula if it or any of its dependencies has a license on this list.",
|
"formula if it or any of its dependencies has a license on this list.",
|
||||||
},
|
},
|
||||||
HOMEBREW_FORCE_BREWED_CA_CERTIFICATES: {
|
HOMEBREW_FORCE_BREWED_CA_CERTIFICATES: {
|
||||||
description: "If set, always use a Homebrew-installed `ca-certificates` rather than the system version. " \
|
description: "If set, always use a Homebrew-installed `ca-certificates` rather than the system version. " \
|
||||||
"Automatically set if the system version is too old.",
|
"Automatically set if the system version is too old.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_FORCE_BREWED_CURL: {
|
HOMEBREW_FORCE_BREWED_CURL: {
|
||||||
description: "If set, always use a Homebrew-installed `curl`(1) rather than the system version. " \
|
description: "If set, always use a Homebrew-installed `curl`(1) rather than the system version. " \
|
||||||
"Automatically set if the system version of `curl` is too old.",
|
"Automatically set if the system version of `curl` is too old.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_FORCE_BREWED_GIT: {
|
HOMEBREW_FORCE_BREWED_GIT: {
|
||||||
description: "If set, always use a Homebrew-installed `git`(1) rather than the system version. " \
|
description: "If set, always use a Homebrew-installed `git`(1) rather than the system version. " \
|
||||||
"Automatically set if the system version of `git` is too old.",
|
"Automatically set if the system version of `git` is too old.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_FORCE_VENDOR_RUBY: {
|
HOMEBREW_FORCE_VENDOR_RUBY: {
|
||||||
description: "If set, always use Homebrew's vendored, relocatable Ruby version even if the system version " \
|
description: "If set, always use Homebrew's vendored, relocatable Ruby version even if the system version " \
|
||||||
"of Ruby is new enough.",
|
"of Ruby is new enough.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_GITHUB_API_TOKEN: {
|
HOMEBREW_GITHUB_API_TOKEN: {
|
||||||
description: "Use this personal access token for the GitHub API, for features such as " \
|
description: "Use this personal access token for the GitHub API, for features such as " \
|
||||||
"`brew search`. You can create one at <https://github.com/settings/tokens>. If set, " \
|
"`brew search`. You can create one at <https://github.com/settings/tokens>. If set, " \
|
||||||
"GitHub will allow you a greater number of API requests. For more information, see: " \
|
"GitHub will allow you a greater number of API requests. For more information, see: " \
|
||||||
@ -175,51 +175,51 @@ module Homebrew
|
|||||||
"\n\n *Note:* Homebrew doesn't require permissions for any of the scopes, but some " \
|
"\n\n *Note:* Homebrew doesn't require permissions for any of the scopes, but some " \
|
||||||
"developer commands may require additional permissions.",
|
"developer commands may require additional permissions.",
|
||||||
},
|
},
|
||||||
HOMEBREW_GITHUB_PACKAGES_TOKEN: {
|
HOMEBREW_GITHUB_PACKAGES_TOKEN: {
|
||||||
description: "Use this GitHub personal access token when accessing the GitHub Packages Registry "\
|
description: "Use this GitHub personal access token when accessing the GitHub Packages Registry "\
|
||||||
"(where bottles may be stored).",
|
"(where bottles may be stored).",
|
||||||
},
|
},
|
||||||
HOMEBREW_DOCKER_REGISTRY_BASIC_AUTH_TOKEN: {
|
HOMEBREW_DOCKER_REGISTRY_BASIC_AUTH_TOKEN: {
|
||||||
description: "Use this base64 encoded username and password for authenticating with a Docker registry " \
|
description: "Use this base64 encoded username and password for authenticating with a Docker registry " \
|
||||||
"proxying GitHub Packages. If HOMEBREW_DOCKER_REGISTRY_TOKEN is set, it will be used instead.",
|
"proxying GitHub Packages. If HOMEBREW_DOCKER_REGISTRY_TOKEN is set, it will be used instead.",
|
||||||
},
|
},
|
||||||
HOMEBREW_DOCKER_REGISTRY_TOKEN: {
|
HOMEBREW_DOCKER_REGISTRY_TOKEN: {
|
||||||
description: "Use this bearer token for authenticating with a Docker registry proxying GitHub Packages. " \
|
description: "Use this bearer token for authenticating with a Docker registry proxying GitHub Packages. " \
|
||||||
"Preferred over HOMEBREW_DOCKER_REGISTRY_TOKEN_BASIC.",
|
"Preferred over HOMEBREW_DOCKER_REGISTRY_TOKEN_BASIC.",
|
||||||
},
|
},
|
||||||
HOMEBREW_GITHUB_PACKAGES_USER: {
|
HOMEBREW_GITHUB_PACKAGES_USER: {
|
||||||
description: "Use this username when accessing the GitHub Packages Registry (where bottles may be stored).",
|
description: "Use this username when accessing the GitHub Packages Registry (where bottles may be stored).",
|
||||||
},
|
},
|
||||||
HOMEBREW_GIT_EMAIL: {
|
HOMEBREW_GIT_EMAIL: {
|
||||||
description: "Set the Git author and committer email to this value.",
|
description: "Set the Git author and committer email to this value.",
|
||||||
},
|
},
|
||||||
HOMEBREW_GIT_NAME: {
|
HOMEBREW_GIT_NAME: {
|
||||||
description: "Set the Git author and committer name to this value.",
|
description: "Set the Git author and committer name to this value.",
|
||||||
},
|
},
|
||||||
HOMEBREW_INSTALL_BADGE: {
|
HOMEBREW_INSTALL_BADGE: {
|
||||||
description: "Print this text before the installation summary of each successful build.",
|
description: "Print this text before the installation summary of each successful build.",
|
||||||
default_text: 'The "Beer Mug" emoji.',
|
default_text: 'The "Beer Mug" emoji.',
|
||||||
default: "🍺",
|
default: "🍺",
|
||||||
},
|
},
|
||||||
HOMEBREW_INSTALL_FROM_API: {
|
HOMEBREW_INSTALL_FROM_API: {
|
||||||
description: "If set, install formulae and casks in homebrew/core and homebrew/cask taps using Homebrew's " \
|
description: "If set, install formulae and casks in homebrew/core and homebrew/cask taps using Homebrew's " \
|
||||||
"API instead of needing (large, slow) local checkouts of these repositories." \
|
"API instead of needing (large, slow) local checkouts of these repositories." \
|
||||||
"\n\n *Note:* Setting HOMEBREW_INSTALL_FROM_API is not compatible with Homebrew's " \
|
"\n\n *Note:* Setting HOMEBREW_INSTALL_FROM_API is not compatible with Homebrew's " \
|
||||||
"developer mode so will error (as Homebrew development needs a full clone).",
|
"developer mode so will error (as Homebrew development needs a full clone).",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_LIVECHECK_WATCHLIST: {
|
HOMEBREW_LIVECHECK_WATCHLIST: {
|
||||||
description: "Consult this file for the list of formulae to check by default when no formula argument " \
|
description: "Consult this file for the list of formulae to check by default when no formula argument " \
|
||||||
"is passed to `brew livecheck`.",
|
"is passed to `brew livecheck`.",
|
||||||
default: "$HOME/.brew_livecheck_watchlist",
|
default: "$HOME/.brew_livecheck_watchlist",
|
||||||
},
|
},
|
||||||
HOMEBREW_LOGS: {
|
HOMEBREW_LOGS: {
|
||||||
description: "Use this directory to store log files.",
|
description: "Use this directory to store log files.",
|
||||||
default_text: "macOS: `$HOME/Library/Logs/Homebrew`, " \
|
default_text: "macOS: `$HOME/Library/Logs/Homebrew`, " \
|
||||||
"Linux: `$XDG_CACHE_HOME/Homebrew/Logs` or `$HOME/.cache/Homebrew/Logs`.",
|
"Linux: `$XDG_CACHE_HOME/Homebrew/Logs` or `$HOME/.cache/Homebrew/Logs`.",
|
||||||
default: HOMEBREW_DEFAULT_LOGS,
|
default: HOMEBREW_DEFAULT_LOGS,
|
||||||
},
|
},
|
||||||
HOMEBREW_MAKE_JOBS: {
|
HOMEBREW_MAKE_JOBS: {
|
||||||
description: "Use this value as the number of parallel jobs to run when building with `make`(1).",
|
description: "Use this value as the number of parallel jobs to run when building with `make`(1).",
|
||||||
default_text: "The number of available CPU cores.",
|
default_text: "The number of available CPU cores.",
|
||||||
default: lambda {
|
default: lambda {
|
||||||
@ -228,100 +228,100 @@ module Homebrew
|
|||||||
Hardware::CPU.cores
|
Hardware::CPU.cores
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
HOMEBREW_NO_ANALYTICS: {
|
HOMEBREW_NO_ANALYTICS: {
|
||||||
description: "If set, do not send analytics. For more information, see: <https://docs.brew.sh/Analytics>",
|
description: "If set, do not send analytics. For more information, see: <https://docs.brew.sh/Analytics>",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_NO_AUTO_UPDATE: {
|
HOMEBREW_NO_AUTO_UPDATE: {
|
||||||
description: "If set, do not automatically update before running some commands, e.g. " \
|
description: "If set, do not automatically update before running some commands, e.g. " \
|
||||||
"`brew install`, `brew upgrade` and `brew tap`. Alternatively, " \
|
"`brew install`, `brew upgrade` and `brew tap`. Alternatively, " \
|
||||||
"run this less often by setting HOMEBREW_AUTO_UPDATE_SECS to a value higher than the default.",
|
"run this less often by setting HOMEBREW_AUTO_UPDATE_SECS to a value higher than the default.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_NO_BOOTSNAP: {
|
HOMEBREW_NO_BOOTSNAP: {
|
||||||
description: "If set, do not use Bootsnap to speed up repeated `brew` calls.",
|
description: "If set, do not use Bootsnap to speed up repeated `brew` calls.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: {
|
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: {
|
||||||
description: "If set, do not check for broken linkage of dependents or outdated dependents after " \
|
description: "If set, do not check for broken linkage of dependents or outdated dependents after " \
|
||||||
"installing, upgrading or reinstalling formulae. This will result in fewer dependents " \
|
"installing, upgrading or reinstalling formulae. This will result in fewer dependents " \
|
||||||
" (and their dependencies) being upgraded or reinstalled but may result in more breakage " \
|
" (and their dependencies) being upgraded or reinstalled but may result in more breakage " \
|
||||||
"from running `brew install <formula>` or `brew upgrade <formula>`.",
|
"from running `brew install <formula>` or `brew upgrade <formula>`.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_NO_CLEANUP_FORMULAE: {
|
HOMEBREW_NO_CLEANUP_FORMULAE: {
|
||||||
description: "A comma-separated list of formulae. Homebrew will refuse to clean up a " \
|
description: "A comma-separated list of formulae. Homebrew will refuse to clean up a " \
|
||||||
"formula if it appears on this list.",
|
"formula if it appears on this list.",
|
||||||
},
|
},
|
||||||
HOMEBREW_NO_COLOR: {
|
HOMEBREW_NO_COLOR: {
|
||||||
description: "If set, do not print text with colour added.",
|
description: "If set, do not print text with colour added.",
|
||||||
default_text: "`$NO_COLOR`.",
|
default_text: "`$NO_COLOR`.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_NO_COMPAT: {
|
HOMEBREW_NO_COMPAT: {
|
||||||
description: "If set, disable all use of legacy compatibility code.",
|
description: "If set, disable all use of legacy compatibility code.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_NO_EMOJI: {
|
HOMEBREW_NO_EMOJI: {
|
||||||
description: "If set, do not print `HOMEBREW_INSTALL_BADGE` on a successful build." \
|
description: "If set, do not print `HOMEBREW_INSTALL_BADGE` on a successful build." \
|
||||||
"\n\n *Note:* Will only try to print emoji on OS X Lion or newer.",
|
"\n\n *Note:* Will only try to print emoji on OS X Lion or newer.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_NO_ENV_HINTS: {
|
HOMEBREW_NO_ENV_HINTS: {
|
||||||
description: "If set, do not print any hints about changing Homebrew's behaviour with environment variables.",
|
description: "If set, do not print any hints about changing Homebrew's behaviour with environment variables.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_NO_GITHUB_API: {
|
HOMEBREW_NO_GITHUB_API: {
|
||||||
description: "If set, do not use the GitHub API, e.g. for searches or fetching relevant issues " \
|
description: "If set, do not use the GitHub API, e.g. for searches or fetching relevant issues " \
|
||||||
"after a failed install.",
|
"after a failed install.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_NO_INSECURE_REDIRECT: {
|
HOMEBREW_NO_INSECURE_REDIRECT: {
|
||||||
description: "If set, forbid redirects from secure HTTPS to insecure HTTP." \
|
description: "If set, forbid redirects from secure HTTPS to insecure HTTP." \
|
||||||
"\n\n *Note:* While ensuring your downloads are fully secure, this is likely to cause " \
|
"\n\n *Note:* While ensuring your downloads are fully secure, this is likely to cause " \
|
||||||
"from-source SourceForge, some GNU & GNOME-hosted formulae to fail to download.",
|
"from-source SourceForge, some GNU & GNOME-hosted formulae to fail to download.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_NO_INSTALL_CLEANUP: {
|
HOMEBREW_NO_INSTALL_CLEANUP: {
|
||||||
description: "If set, `brew install`, `brew upgrade` and `brew reinstall` will never automatically " \
|
description: "If set, `brew install`, `brew upgrade` and `brew reinstall` will never automatically " \
|
||||||
"cleanup installed/upgraded/reinstalled formulae or all formulae every " \
|
"cleanup installed/upgraded/reinstalled formulae or all formulae every " \
|
||||||
"`HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS` days. Alternatively, HOMEBREW_NO_CLEANUP_FORMULAE " \
|
"`HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS` days. Alternatively, HOMEBREW_NO_CLEANUP_FORMULAE " \
|
||||||
"allows specifying specific formulae to not clean up.",
|
"allows specifying specific formulae to not clean up.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_NO_INSTALL_UPGRADE: {
|
HOMEBREW_NO_INSTALL_UPGRADE: {
|
||||||
description: "If set, `brew install <formula>` will not upgrade `<formula>` if it is installed but " \
|
description: "If set, `brew install <formula>` will not upgrade `<formula>` if it is installed but " \
|
||||||
"outdated.",
|
"outdated.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_PRY: {
|
HOMEBREW_PRY: {
|
||||||
description: "If set, use Pry for the `brew irb` command.",
|
description: "If set, use Pry for the `brew irb` command.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_SIMULATE_MACOS_ON_LINUX: {
|
HOMEBREW_SIMULATE_MACOS_ON_LINUX: {
|
||||||
description: "If set, running Homebrew on Linux will simulate certain macOS code paths. This is useful " \
|
description: "If set, running Homebrew on Linux will simulate certain macOS code paths. This is useful " \
|
||||||
"when auditing macOS formulae while on Linux.",
|
"when auditing macOS formulae while on Linux.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_SSH_CONFIG_PATH: {
|
HOMEBREW_SSH_CONFIG_PATH: {
|
||||||
description: "If set, Homebrew will use the given config file instead of `~/.ssh/config` when fetching " \
|
description: "If set, Homebrew will use the given config file instead of `~/.ssh/config` when fetching " \
|
||||||
"`git` repos over `ssh`.",
|
"`git` repos over `ssh`.",
|
||||||
default_text: "`$HOME/.ssh/config`",
|
default_text: "`$HOME/.ssh/config`",
|
||||||
},
|
},
|
||||||
HOMEBREW_SKIP_OR_LATER_BOTTLES: {
|
HOMEBREW_SKIP_OR_LATER_BOTTLES: {
|
||||||
description: "If set along with `HOMEBREW_DEVELOPER`, do not use bottles from older versions " \
|
description: "If set along with `HOMEBREW_DEVELOPER`, do not use bottles from older versions " \
|
||||||
"of macOS. This is useful in development on new macOS versions.",
|
"of macOS. This is useful in development on new macOS versions.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_SORBET_RUNTIME: {
|
HOMEBREW_SORBET_RUNTIME: {
|
||||||
description: "If set, enable runtime typechecking using Sorbet.",
|
description: "If set, enable runtime typechecking using Sorbet.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_SVN: {
|
HOMEBREW_SVN: {
|
||||||
description: "Use this as the `svn`(1) binary.",
|
description: "Use this as the `svn`(1) binary.",
|
||||||
default_text: "A Homebrew-built Subversion (if installed), or the system-provided binary.",
|
default_text: "A Homebrew-built Subversion (if installed), or the system-provided binary.",
|
||||||
},
|
},
|
||||||
HOMEBREW_TEMP: {
|
HOMEBREW_TEMP: {
|
||||||
description: "Use this path as the temporary directory for building packages. Changing " \
|
description: "Use this path as the temporary directory for building packages. Changing " \
|
||||||
"this may be needed if your system temporary directory and Homebrew prefix are on " \
|
"this may be needed if your system temporary directory and Homebrew prefix are on " \
|
||||||
"different volumes, as macOS has trouble moving symlinks across volumes when the target " \
|
"different volumes, as macOS has trouble moving symlinks across volumes when the target " \
|
||||||
@ -330,50 +330,46 @@ module Homebrew
|
|||||||
default_text: "macOS: `/private/tmp`, Linux: `/tmp`.",
|
default_text: "macOS: `/private/tmp`, Linux: `/tmp`.",
|
||||||
default: HOMEBREW_DEFAULT_TEMP,
|
default: HOMEBREW_DEFAULT_TEMP,
|
||||||
},
|
},
|
||||||
HOMEBREW_UPDATE_REPORT_ALL_FORMULAE: {
|
HOMEBREW_UPDATE_REPORT_ALL_FORMULAE: {
|
||||||
description: "If set, `brew update` lists updates to all software.",
|
description: "If set, `brew update` lists changes to all formulae and cask files rather than only showing " \
|
||||||
|
"when they are installed or outdated.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_UPDATE_REPORT_VERSION_CHANGED_FORMULAE: {
|
HOMEBREW_UPDATE_TO_TAG: {
|
||||||
description: "If set, `brew update` only lists updates to formulae with differing versions. " \
|
|
||||||
"Note this is slower than the default behaviour.",
|
|
||||||
boolean: true,
|
|
||||||
},
|
|
||||||
HOMEBREW_UPDATE_TO_TAG: {
|
|
||||||
description: "If set, always use the latest stable tag (even if developer commands " \
|
description: "If set, always use the latest stable tag (even if developer commands " \
|
||||||
"have been run).",
|
"have been run).",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_VERBOSE: {
|
HOMEBREW_VERBOSE: {
|
||||||
description: "If set, always assume `--verbose` when running commands.",
|
description: "If set, always assume `--verbose` when running commands.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_DEBUG: {
|
HOMEBREW_DEBUG: {
|
||||||
description: "If set, always assume `--debug` when running commands.",
|
description: "If set, always assume `--debug` when running commands.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_VERBOSE_USING_DOTS: {
|
HOMEBREW_VERBOSE_USING_DOTS: {
|
||||||
description: "If set, verbose output will print a `.` no more than once a minute. This can be " \
|
description: "If set, verbose output will print a `.` no more than once a minute. This can be " \
|
||||||
"useful to avoid long-running Homebrew commands being killed due to no output.",
|
"useful to avoid long-running Homebrew commands being killed due to no output.",
|
||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
all_proxy: {
|
all_proxy: {
|
||||||
description: "Use this SOCKS5 proxy for `curl`(1), `git`(1) and `svn`(1) when downloading through Homebrew.",
|
description: "Use this SOCKS5 proxy for `curl`(1), `git`(1) and `svn`(1) when downloading through Homebrew.",
|
||||||
},
|
},
|
||||||
ftp_proxy: {
|
ftp_proxy: {
|
||||||
description: "Use this FTP proxy for `curl`(1), `git`(1) and `svn`(1) when downloading through Homebrew.",
|
description: "Use this FTP proxy for `curl`(1), `git`(1) and `svn`(1) when downloading through Homebrew.",
|
||||||
},
|
},
|
||||||
http_proxy: {
|
http_proxy: {
|
||||||
description: "Use this HTTP proxy for `curl`(1), `git`(1) and `svn`(1) when downloading through Homebrew.",
|
description: "Use this HTTP proxy for `curl`(1), `git`(1) and `svn`(1) when downloading through Homebrew.",
|
||||||
},
|
},
|
||||||
https_proxy: {
|
https_proxy: {
|
||||||
description: "Use this HTTPS proxy for `curl`(1), `git`(1) and `svn`(1) when downloading through Homebrew.",
|
description: "Use this HTTPS proxy for `curl`(1), `git`(1) and `svn`(1) when downloading through Homebrew.",
|
||||||
},
|
},
|
||||||
no_proxy: {
|
no_proxy: {
|
||||||
description: "A comma-separated list of hostnames and domain names excluded " \
|
description: "A comma-separated list of hostnames and domain names excluded " \
|
||||||
"from proxying by `curl`(1), `git`(1) and `svn`(1) when downloading through Homebrew.",
|
"from proxying by `curl`(1), `git`(1) and `svn`(1) when downloading through Homebrew.",
|
||||||
},
|
},
|
||||||
SUDO_ASKPASS: {
|
SUDO_ASKPASS: {
|
||||||
description: "If set, pass the `-A` option when calling `sudo`(8).",
|
description: "If set, pass the `-A` option when calling `sudo`(8).",
|
||||||
},
|
},
|
||||||
}.freeze
|
}.freeze
|
||||||
|
|||||||
@ -52,39 +52,39 @@ describe "brew update-report" do
|
|||||||
specify "without Formula changes" do
|
specify "without Formula changes" do
|
||||||
perform_update("update_git_diff_output_without_formulae_changes")
|
perform_update("update_git_diff_output_without_formulae_changes")
|
||||||
|
|
||||||
expect(hub.select_formula(:M)).to be_empty
|
expect(hub.select_formula_or_cask(:M)).to be_empty
|
||||||
expect(hub.select_formula(:A)).to be_empty
|
expect(hub.select_formula_or_cask(:A)).to be_empty
|
||||||
expect(hub.select_formula(:D)).to be_empty
|
expect(hub.select_formula_or_cask(:D)).to be_empty
|
||||||
end
|
end
|
||||||
|
|
||||||
specify "with Formula changes" do
|
specify "with Formula changes" do
|
||||||
perform_update("update_git_diff_output_with_formulae_changes")
|
perform_update("update_git_diff_output_with_formulae_changes")
|
||||||
|
|
||||||
expect(hub.select_formula(:M)).to eq(%w[xar yajl])
|
expect(hub.select_formula_or_cask(:M)).to eq(%w[xar yajl])
|
||||||
expect(hub.select_formula(:A)).to eq(%w[antiword bash-completion ddrescue dict lua])
|
expect(hub.select_formula_or_cask(:A)).to eq(%w[antiword bash-completion ddrescue dict lua])
|
||||||
end
|
end
|
||||||
|
|
||||||
specify "with removed Formulae" do
|
specify "with removed Formulae" do
|
||||||
perform_update("update_git_diff_output_with_removed_formulae")
|
perform_update("update_git_diff_output_with_removed_formulae")
|
||||||
|
|
||||||
expect(hub.select_formula(:D)).to eq(%w[libgsasl])
|
expect(hub.select_formula_or_cask(:D)).to eq(%w[libgsasl])
|
||||||
end
|
end
|
||||||
|
|
||||||
specify "with changed file type" do
|
specify "with changed file type" do
|
||||||
perform_update("update_git_diff_output_with_changed_filetype")
|
perform_update("update_git_diff_output_with_changed_filetype")
|
||||||
|
|
||||||
expect(hub.select_formula(:M)).to eq(%w[elixir])
|
expect(hub.select_formula_or_cask(:M)).to eq(%w[elixir])
|
||||||
expect(hub.select_formula(:A)).to eq(%w[libbson])
|
expect(hub.select_formula_or_cask(:A)).to eq(%w[libbson])
|
||||||
expect(hub.select_formula(:D)).to eq(%w[libgsasl])
|
expect(hub.select_formula_or_cask(:D)).to eq(%w[libgsasl])
|
||||||
end
|
end
|
||||||
|
|
||||||
specify "with renamed Formula" do
|
specify "with renamed Formula" do
|
||||||
allow(tap).to receive(:formula_renames).and_return("cv" => "progress")
|
allow(tap).to receive(:formula_renames).and_return("cv" => "progress")
|
||||||
perform_update("update_git_diff_output_with_formula_rename")
|
perform_update("update_git_diff_output_with_formula_rename")
|
||||||
|
|
||||||
expect(hub.select_formula(:A)).to be_empty
|
expect(hub.select_formula_or_cask(:A)).to be_empty
|
||||||
expect(hub.select_formula(:D)).to be_empty
|
expect(hub.select_formula_or_cask(:D)).to be_empty
|
||||||
expect(hub.select_formula(:R)).to eq([["cv", "progress"]])
|
expect(hub.select_formula_or_cask(:R)).to eq([["cv", "progress"]])
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when updating a Tap other than the core Tap" do
|
context "when updating a Tap other than the core Tap" do
|
||||||
@ -101,34 +101,34 @@ describe "brew update-report" do
|
|||||||
specify "with restructured Tap" do
|
specify "with restructured Tap" do
|
||||||
perform_update("update_git_diff_output_with_restructured_tap")
|
perform_update("update_git_diff_output_with_restructured_tap")
|
||||||
|
|
||||||
expect(hub.select_formula(:A)).to be_empty
|
expect(hub.select_formula_or_cask(:A)).to be_empty
|
||||||
expect(hub.select_formula(:D)).to be_empty
|
expect(hub.select_formula_or_cask(:D)).to be_empty
|
||||||
expect(hub.select_formula(:R)).to be_empty
|
expect(hub.select_formula_or_cask(:R)).to be_empty
|
||||||
end
|
end
|
||||||
|
|
||||||
specify "with renamed Formula and restructured Tap" do
|
specify "with renamed Formula and restructured Tap" do
|
||||||
allow(tap).to receive(:formula_renames).and_return("xchat" => "xchat2")
|
allow(tap).to receive(:formula_renames).and_return("xchat" => "xchat2")
|
||||||
perform_update("update_git_diff_output_with_formula_rename_and_restructuring")
|
perform_update("update_git_diff_output_with_formula_rename_and_restructuring")
|
||||||
|
|
||||||
expect(hub.select_formula(:A)).to be_empty
|
expect(hub.select_formula_or_cask(:A)).to be_empty
|
||||||
expect(hub.select_formula(:D)).to be_empty
|
expect(hub.select_formula_or_cask(:D)).to be_empty
|
||||||
expect(hub.select_formula(:R)).to eq([%w[foo/bar/xchat foo/bar/xchat2]])
|
expect(hub.select_formula_or_cask(:R)).to eq([%w[foo/bar/xchat foo/bar/xchat2]])
|
||||||
end
|
end
|
||||||
|
|
||||||
specify "with simulated 'homebrew/php' restructuring" do
|
specify "with simulated 'homebrew/php' restructuring" do
|
||||||
perform_update("update_git_diff_simulate_homebrew_php_restructuring")
|
perform_update("update_git_diff_simulate_homebrew_php_restructuring")
|
||||||
|
|
||||||
expect(hub.select_formula(:A)).to be_empty
|
expect(hub.select_formula_or_cask(:A)).to be_empty
|
||||||
expect(hub.select_formula(:D)).to be_empty
|
expect(hub.select_formula_or_cask(:D)).to be_empty
|
||||||
expect(hub.select_formula(:R)).to be_empty
|
expect(hub.select_formula_or_cask(:R)).to be_empty
|
||||||
end
|
end
|
||||||
|
|
||||||
specify "with Formula changes" do
|
specify "with Formula changes" do
|
||||||
perform_update("update_git_diff_output_with_tap_formulae_changes")
|
perform_update("update_git_diff_output_with_tap_formulae_changes")
|
||||||
|
|
||||||
expect(hub.select_formula(:A)).to eq(%w[foo/bar/lua])
|
expect(hub.select_formula_or_cask(:A)).to eq(%w[foo/bar/lua])
|
||||||
expect(hub.select_formula(:M)).to eq(%w[foo/bar/git])
|
expect(hub.select_formula_or_cask(:M)).to eq(%w[foo/bar/git])
|
||||||
expect(hub.select_formula(:D)).to be_empty
|
expect(hub.select_formula_or_cask(:D)).to be_empty
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -25,7 +25,7 @@ describe DescriptionCacheStore do
|
|||||||
end
|
end
|
||||||
|
|
||||||
describe "#update_from_report!" do
|
describe "#update_from_report!" do
|
||||||
let(:report) { double(select_formula: [], empty?: false) }
|
let(:report) { double(select_formula_or_cask: [], empty?: false) }
|
||||||
|
|
||||||
it "reads from the report" do
|
it "reads from the report" do
|
||||||
expect(database).to receive(:empty?).at_least(:once).and_return(false)
|
expect(database).to receive(:empty?).at_least(:once).and_return(false)
|
||||||
@ -60,7 +60,7 @@ describe DescriptionCacheStore do
|
|||||||
let(:database) { double("database") }
|
let(:database) { double("database") }
|
||||||
|
|
||||||
describe "#update_from_report!" do
|
describe "#update_from_report!" do
|
||||||
let(:report) { double(select_formula: [], empty?: false) }
|
let(:report) { double(select_formula_or_cask: [], empty?: false) }
|
||||||
|
|
||||||
it "reads from the report" do
|
it "reads from the report" do
|
||||||
expect(database).to receive(:empty?).at_least(:once).and_return(false)
|
expect(database).to receive(:empty?).at_least(:once).and_return(false)
|
||||||
|
|||||||
@ -248,6 +248,16 @@ module Kernel
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def pretty_outdated(f)
|
||||||
|
if !$stdout.tty?
|
||||||
|
f.to_s
|
||||||
|
elsif Homebrew::EnvConfig.no_emoji?
|
||||||
|
Formatter.error("#{Tty.bold}#{f} (outdated)#{Tty.reset}")
|
||||||
|
else
|
||||||
|
"#{Tty.bold}#{f} #{Formatter.warning("⚠")}#{Tty.reset}"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def pretty_uninstalled(f)
|
def pretty_uninstalled(f)
|
||||||
if !$stdout.tty?
|
if !$stdout.tty?
|
||||||
f.to_s
|
f.to_s
|
||||||
|
|||||||
@ -2172,10 +2172,7 @@ example, run `export HOMEBREW_NO_INSECURE_REDIRECT=1` rather than just
|
|||||||
*Default:* macOS: `/private/tmp`, Linux: `/tmp`.
|
*Default:* macOS: `/private/tmp`, Linux: `/tmp`.
|
||||||
|
|
||||||
- `HOMEBREW_UPDATE_REPORT_ALL_FORMULAE`
|
- `HOMEBREW_UPDATE_REPORT_ALL_FORMULAE`
|
||||||
<br>If set, `brew update` lists updates to all software.
|
<br>If set, `brew update` lists changes to all formulae and cask files rather than only showing when they are installed or outdated.
|
||||||
|
|
||||||
- `HOMEBREW_UPDATE_REPORT_VERSION_CHANGED_FORMULAE`
|
|
||||||
<br>If set, `brew update` only lists updates to formulae with differing versions. Note this is slower than the default behaviour.
|
|
||||||
|
|
||||||
- `HOMEBREW_UPDATE_TO_TAG`
|
- `HOMEBREW_UPDATE_TO_TAG`
|
||||||
<br>If set, always use the latest stable tag (even if developer commands have been run).
|
<br>If set, always use the latest stable tag (even if developer commands have been run).
|
||||||
|
|||||||
@ -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" "May 2022" "Homebrew" "brew"
|
.TH "BREW" "1" "June 2022" "Homebrew" "brew"
|
||||||
.
|
.
|
||||||
.SH "NAME"
|
.SH "NAME"
|
||||||
\fBbrew\fR \- The Missing Package Manager for macOS (or Linux)
|
\fBbrew\fR \- The Missing Package Manager for macOS (or Linux)
|
||||||
@ -3186,13 +3186,7 @@ Use this path as the temporary directory for building packages\. Changing this m
|
|||||||
\fBHOMEBREW_UPDATE_REPORT_ALL_FORMULAE\fR
|
\fBHOMEBREW_UPDATE_REPORT_ALL_FORMULAE\fR
|
||||||
.
|
.
|
||||||
.br
|
.br
|
||||||
If set, \fBbrew update\fR lists updates to all software\.
|
If set, \fBbrew update\fR lists changes to all formulae and cask files rather than only showing when they are installed or outdated\.
|
||||||
.
|
|
||||||
.TP
|
|
||||||
\fBHOMEBREW_UPDATE_REPORT_VERSION_CHANGED_FORMULAE\fR
|
|
||||||
.
|
|
||||||
.br
|
|
||||||
If set, \fBbrew update\fR only lists updates to formulae with differing versions\. Note this is slower than the default behaviour\.
|
|
||||||
.
|
.
|
||||||
.TP
|
.TP
|
||||||
\fBHOMEBREW_UPDATE_TO_TAG\fR
|
\fBHOMEBREW_UPDATE_TO_TAG\fR
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user