From 41b0bf7bbb84495c82987f2fba7cf029d8abef11 Mon Sep 17 00:00:00 2001 From: Rylan Polster Date: Wed, 14 Jul 2021 01:09:03 -0400 Subject: [PATCH 1/9] Add `developer` command --- Library/Homebrew/cmd/developer.rb | 53 +++++++++++++++++++++ Library/Homebrew/test/cmd/developer_spec.rb | 8 ++++ completions/bash/brew | 18 +++++++ completions/fish/brew.fish | 10 ++++ completions/internal_commands_list.txt | 1 + completions/zsh/_brew | 12 +++++ docs/Manpage.md | 12 +++++ manpages/brew.1 | 11 +++++ 8 files changed, 125 insertions(+) create mode 100755 Library/Homebrew/cmd/developer.rb create mode 100644 Library/Homebrew/test/cmd/developer_spec.rb diff --git a/Library/Homebrew/cmd/developer.rb b/Library/Homebrew/cmd/developer.rb new file mode 100755 index 0000000000..b3ddfea8db --- /dev/null +++ b/Library/Homebrew/cmd/developer.rb @@ -0,0 +1,53 @@ +# typed: true +# frozen_string_literal: true + +require "cli/parser" + +module Homebrew + extend T::Sig + + module_function + + sig { returns(CLI::Parser) } + def developer_args + Homebrew::CLI::Parser.new do + description <<~EOS + Control Homebrew's developer mode. When developer mode is enabled, + `brew update` will update Homebrew to the latest commit on the `master` + branch instead of the latest stable version. + + `brew developer` [`state`]: + Display the current state of Homebrew's developer mode. + + `brew developer` (`on`|`off`): + Turn Homebrew's developer mode on or off respectively. + EOS + + named_args %w[state on off], max: 1 + end + end + + def developer + args = developer_args.parse + + case args.named.first + when nil, "state" + if Homebrew::EnvConfig.developer? + puts "Developer mode is enabled because #{Tty.bold}HOMEBREW_DEVELOPER#{Tty.reset} it set." + elsif Homebrew::Settings.read("devcmdrun") == "true" + puts "Developer mode is enabled." + else + puts "Developer mode is disabled." + end + when "on" + Homebrew::Settings.write "devcmdrun", true + when "off" + Homebrew::Settings.delete "devcmdrun" + if Homebrew::EnvConfig.developer? + puts "To fully disable developer mode, you must unset #{Tty.bold}HOMEBREW_DEVELOPER#{Tty.reset}." + end + else + raise UsageError, "unknown subcommand: #{args.named.first}" + end + end +end diff --git a/Library/Homebrew/test/cmd/developer_spec.rb b/Library/Homebrew/test/cmd/developer_spec.rb new file mode 100644 index 0000000000..00ca2f5739 --- /dev/null +++ b/Library/Homebrew/test/cmd/developer_spec.rb @@ -0,0 +1,8 @@ +# typed: false +# frozen_string_literal: true + +require "cmd/shared_examples/args_parse" + +describe "brew developer" do + it_behaves_like "parseable arguments" +end diff --git a/completions/bash/brew b/completions/bash/brew index fd9bd9ee5c..22ac0ab463 100644 --- a/completions/bash/brew +++ b/completions/bash/brew @@ -745,6 +745,23 @@ _brew_desc() { __brew_complete_formulae } +_brew_developer() { + local cur="${COMP_WORDS[COMP_CWORD]}" + case "${cur}" in + -*) + __brewcomp " + --debug + --help + --quiet + --verbose + " + return + ;; + *) + esac + __brewcomp "state on off" +} + _brew_dispatch_build_bottle() { local cur="${COMP_WORDS[COMP_CWORD]}" case "${cur}" in @@ -2416,6 +2433,7 @@ _brew() { create) _brew_create ;; deps) _brew_deps ;; desc) _brew_desc ;; + developer) _brew_developer ;; dispatch-build-bottle) _brew_dispatch_build_bottle ;; doctor) _brew_doctor ;; dr) _brew_dr ;; diff --git a/completions/fish/brew.fish b/completions/fish/brew.fish index 154d070631..454adfab5a 100644 --- a/completions/fish/brew.fish +++ b/completions/fish/brew.fish @@ -577,6 +577,16 @@ __fish_brew_complete_arg 'desc' -l verbose -d 'Make some output more verbose' __fish_brew_complete_arg 'desc' -a '(__fish_brew_suggest_formulae_all)' +__fish_brew_complete_cmd 'developer' 'Control Homebrew\'s developer mode' +__fish_brew_complete_sub_cmd 'developer' 'state' +__fish_brew_complete_sub_cmd 'developer' 'on' +__fish_brew_complete_sub_cmd 'developer' 'off' +__fish_brew_complete_arg 'developer' -l debug -d 'Display any debugging information' +__fish_brew_complete_arg 'developer' -l help -d 'Show this message' +__fish_brew_complete_arg 'developer' -l quiet -d 'Make some output more quiet' +__fish_brew_complete_arg 'developer' -l verbose -d 'Make some output more verbose' + + __fish_brew_complete_cmd 'dispatch-build-bottle' 'Build bottles for these formulae with GitHub Actions' __fish_brew_complete_arg 'dispatch-build-bottle' -l debug -d 'Display any debugging information' __fish_brew_complete_arg 'dispatch-build-bottle' -l help -d 'Show this message' diff --git a/completions/internal_commands_list.txt b/completions/internal_commands_list.txt index b9bd13f3c8..0a2738c328 100644 --- a/completions/internal_commands_list.txt +++ b/completions/internal_commands_list.txt @@ -30,6 +30,7 @@ configure create deps desc +developer dispatch-build-bottle doctor dr diff --git a/completions/zsh/_brew b/completions/zsh/_brew index 81b5a6a132..95ec45cbe3 100644 --- a/completions/zsh/_brew +++ b/completions/zsh/_brew @@ -155,6 +155,7 @@ __brew_internal_commands() { 'create:Generate a formula or, with `--cask`, a cask for the downloadable file at URL and open it in the editor' 'deps:Show dependencies for formula' 'desc:Display formula'\''s name and one-line description' + 'developer:Control Homebrew'\''s developer mode' 'dispatch-build-bottle:Build bottles for these formulae with GitHub Actions' 'doctor:Check your system for potential problems' 'edit:Open a formula or cask in the editor set by `EDITOR` or `HOMEBREW_EDITOR`, or open the Homebrew repository for editing if no formula is provided' @@ -709,6 +710,17 @@ _brew_desc() { '*::formula:__brew_formulae' } +# brew developer +_brew_developer() { + _arguments \ + '--debug[Display any debugging information]' \ + '--help[Show this message]' \ + '--quiet[Make some output more quiet]' \ + '--verbose[Make some output more verbose]' \ + - subcommand \ + '*::subcommand:(state on off)' +} + # brew dispatch-build-bottle _brew_dispatch_build_bottle() { _arguments \ diff --git a/docs/Manpage.md b/docs/Manpage.md index 48417c8651..3044024c7f 100644 --- a/docs/Manpage.md +++ b/docs/Manpage.md @@ -184,6 +184,18 @@ first search, making that search slower than subsequent ones. * `-d`, `--description`: Search just descriptions for *`text`*. If *`text`* is flanked by slashes, it is interpreted as a regular expression. +### `developer` [*`subcommand`*] + +Control Homebrew's developer mode. When developer mode is enabled, +`brew update` will update Homebrew to the latest commit on the `master` +branch instead of the latest stable version. + +`brew developer` [`state`] +
Display the current state of Homebrew's developer mode. + +`brew developer` (`on`|`off`) +
Turn Homebrew's developer mode on or off respectively. + ### `doctor`, `dr` [*`--list-checks`*] [*`--audit-debug`*] [*`diagnostic_check`* ...] Check your system for potential problems. Will exit with a non-zero status diff --git a/manpages/brew.1 b/manpages/brew.1 index 96d374a49a..6b69aaf401 100644 --- a/manpages/brew.1 +++ b/manpages/brew.1 @@ -229,6 +229,17 @@ Search just names for \fItext\fR\. If \fItext\fR is flanked by slashes, it is in \fB\-d\fR, \fB\-\-description\fR Search just descriptions for \fItext\fR\. If \fItext\fR is flanked by slashes, it is interpreted as a regular expression\. . +.SS "\fBdeveloper\fR [\fIsubcommand\fR]" +Control Homebrew\'s developer mode\. When developer mode is enabled, \fBbrew update\fR will update Homebrew to the latest commit on the \fBmaster\fR branch instead of the latest stable version\. +. +.P +\fBbrew developer\fR [\fBstate\fR] + Display the current state of Homebrew\'s developer mode\. +. +.P +\fBbrew developer\fR (\fBon\fR|\fBoff\fR) + Turn Homebrew\'s developer mode on or off respectively\. +. .SS "\fBdoctor\fR, \fBdr\fR [\fI\-\-list\-checks\fR] [\fI\-\-audit\-debug\fR] [\fIdiagnostic_check\fR \.\.\.]" Check your system for potential problems\. Will exit with a non\-zero status if any potential problems are found\. Please note that these warnings are just used to help the Homebrew maintainers with debugging if you file an issue\. If everything you use Homebrew for is working fine: please don\'t worry or file an issue; just ignore this\. . From 5649d339d7861f197b06f7f35c8bfdf46fdd217e Mon Sep 17 00:00:00 2001 From: Rylan Polster Date: Wed, 14 Jul 2021 11:01:46 -0400 Subject: [PATCH 2/9] Show message when developer mode is turned on --- Library/Homebrew/brew.rb | 7 +++++++ Library/Homebrew/brew.sh | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/Library/Homebrew/brew.rb b/Library/Homebrew/brew.rb index b9306e7ee4..2d14cc4776 100644 --- a/Library/Homebrew/brew.rb +++ b/Library/Homebrew/brew.rb @@ -93,6 +93,13 @@ begin internal_cmd ||= begin internal_dev_cmd = Commands.valid_internal_dev_cmd?(cmd) if internal_dev_cmd && !Homebrew::EnvConfig.developer? + opoo <<~MESSAGE if ENV["HOMEBREW_DEV_CMD_RUN"].blank? + #{Tty.bold}#{cmd}#{Tty.reset} is a developer command, so + Homebrew's developer mode has been automatically turned on. + To turn developer mode off, run #{Tty.bold}brew developer off#{Tty.reset} + + MESSAGE + Homebrew::Settings.write "devcmdrun", true ENV["HOMEBREW_DEV_CMD_RUN"] = "1" end diff --git a/Library/Homebrew/brew.sh b/Library/Homebrew/brew.sh index cb69767ebb..4cd38dced3 100644 --- a/Library/Homebrew/brew.sh +++ b/Library/Homebrew/brew.sh @@ -81,6 +81,30 @@ ohai() { fi } +opoo() { + if [[ -n "${HOMEBREW_COLOR}" || (-t 2 && -z "${HOMEBREW_NO_COLOR}") ]] # check whether stderr is a tty. + then + echo -ne "\\033[4;33mWarning\\033[0m: " >&2 # highlight Warning with underline and yellow color + else + echo -n "Warning: " >&2 + fi + if [[ $# -eq 0 ]] + then + cat >&2 + else + echo "$*" >&2 + fi +} + +bold() { + if [[ -n "${HOMEBREW_COLOR}" || (-t 2 && -z "${HOMEBREW_NO_COLOR}") ]] # check whether stderr is a tty. + then + echo -e "\\033[1m""$*""\\033[0m" + else + echo "$*" + fi +} + onoe() { if [[ -n "${HOMEBREW_COLOR}" || (-t 2 && -z "${HOMEBREW_NO_COLOR}") ]] # check whether stderr is a tty. then @@ -621,6 +645,15 @@ elif [[ -f "${HOMEBREW_LIBRARY}/Homebrew/dev-cmd/${HOMEBREW_COMMAND}.sh" ]] then if [[ -z "${HOMEBREW_DEVELOPER}" ]] then + if [[ -z "${HOMEBREW_DEV_CMD_RUN}" ]] + then + message="$(bold ${HOMEBREW_COMMAND}) is a developer command, so +Homebrew's developer mode has been automatically turned on. +To turn developer mode off, run $(bold "brew developer off") +" + opoo "${message}" + fi + git config --file="${HOMEBREW_GIT_CONFIG_FILE}" --replace-all homebrew.devcmdrun true 2>/dev/null export HOMEBREW_DEV_CMD_RUN="1" fi From 042ae4ccfc47b73b30a4799a2f1e262a669aba57 Mon Sep 17 00:00:00 2001 From: Rylan Polster Date: Wed, 14 Jul 2021 11:07:33 -0400 Subject: [PATCH 3/9] Improve messaging --- Library/Homebrew/cmd/developer.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/cmd/developer.rb b/Library/Homebrew/cmd/developer.rb index b3ddfea8db..78c13cd47d 100755 --- a/Library/Homebrew/cmd/developer.rb +++ b/Library/Homebrew/cmd/developer.rb @@ -14,7 +14,7 @@ module Homebrew description <<~EOS Control Homebrew's developer mode. When developer mode is enabled, `brew update` will update Homebrew to the latest commit on the `master` - branch instead of the latest stable version. + branch instead of the latest stable version along with some other behaviour changes. `brew developer` [`state`]: Display the current state of Homebrew's developer mode. @@ -33,7 +33,7 @@ module Homebrew case args.named.first when nil, "state" if Homebrew::EnvConfig.developer? - puts "Developer mode is enabled because #{Tty.bold}HOMEBREW_DEVELOPER#{Tty.reset} it set." + puts "Developer mode is enabled because #{Tty.bold}HOMEBREW_DEVELOPER#{Tty.reset} is set." elsif Homebrew::Settings.read("devcmdrun") == "true" puts "Developer mode is enabled." else From bcbb47e7174b5c4b0d6412d576e2734d3108d250 Mon Sep 17 00:00:00 2001 From: Rylan Polster Date: Wed, 14 Jul 2021 11:16:50 -0400 Subject: [PATCH 4/9] Add `HOMEBREW_UPDATE_TO_TAG` to messaging --- Library/Homebrew/cmd/developer.rb | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/Library/Homebrew/cmd/developer.rb b/Library/Homebrew/cmd/developer.rb index 78c13cd47d..a28208bde4 100755 --- a/Library/Homebrew/cmd/developer.rb +++ b/Library/Homebrew/cmd/developer.rb @@ -30,10 +30,17 @@ module Homebrew def developer args = developer_args.parse + env_vars = [] + env_vars << "HOMEBREW_DEVELOPER" if Homebrew::EnvConfig.developer? + env_vars << "HOMEBREW_UPDATE_TO_TAG" if Homebrew::EnvConfig.update_to_tag? + env_vars.map! do |var| + "#{Tty.bold}#{var}#{Tty.reset}" + end + case args.named.first when nil, "state" - if Homebrew::EnvConfig.developer? - puts "Developer mode is enabled because #{Tty.bold}HOMEBREW_DEVELOPER#{Tty.reset} is set." + if env_vars.any? + puts "Developer mode is enabled because #{env_vars.to_sentence} #{"is".pluralize(env_vars.count)} set." elsif Homebrew::Settings.read("devcmdrun") == "true" puts "Developer mode is enabled." else @@ -43,8 +50,8 @@ module Homebrew Homebrew::Settings.write "devcmdrun", true when "off" Homebrew::Settings.delete "devcmdrun" - if Homebrew::EnvConfig.developer? - puts "To fully disable developer mode, you must unset #{Tty.bold}HOMEBREW_DEVELOPER#{Tty.reset}." + if env_vars.any? + puts "To fully disable developer mode, you must unset #{env_vars.to_sentence}." end else raise UsageError, "unknown subcommand: #{args.named.first}" From 4ed44aa682876e9d27c815d6d45f8f84dbcbd214 Mon Sep 17 00:00:00 2001 From: Rylan Polster Date: Fri, 16 Jul 2021 01:50:24 -0400 Subject: [PATCH 5/9] Fix style --- Library/Homebrew/brew.sh | 2 +- Library/Homebrew/cmd/developer.rb | 4 +--- docs/Manpage.md | 2 +- manpages/brew.1 | 2 +- 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/Library/Homebrew/brew.sh b/Library/Homebrew/brew.sh index 4cd38dced3..312a029742 100644 --- a/Library/Homebrew/brew.sh +++ b/Library/Homebrew/brew.sh @@ -647,7 +647,7 @@ then then if [[ -z "${HOMEBREW_DEV_CMD_RUN}" ]] then - message="$(bold ${HOMEBREW_COMMAND}) is a developer command, so + message="$(bold "${HOMEBREW_COMMAND}") is a developer command, so Homebrew's developer mode has been automatically turned on. To turn developer mode off, run $(bold "brew developer off") " diff --git a/Library/Homebrew/cmd/developer.rb b/Library/Homebrew/cmd/developer.rb index a28208bde4..e967844b7a 100755 --- a/Library/Homebrew/cmd/developer.rb +++ b/Library/Homebrew/cmd/developer.rb @@ -50,9 +50,7 @@ module Homebrew Homebrew::Settings.write "devcmdrun", true when "off" Homebrew::Settings.delete "devcmdrun" - if env_vars.any? - puts "To fully disable developer mode, you must unset #{env_vars.to_sentence}." - end + puts "To fully disable developer mode, you must unset #{env_vars.to_sentence}." if env_vars.any? else raise UsageError, "unknown subcommand: #{args.named.first}" end diff --git a/docs/Manpage.md b/docs/Manpage.md index 3044024c7f..8c87e39086 100644 --- a/docs/Manpage.md +++ b/docs/Manpage.md @@ -188,7 +188,7 @@ first search, making that search slower than subsequent ones. Control Homebrew's developer mode. When developer mode is enabled, `brew update` will update Homebrew to the latest commit on the `master` -branch instead of the latest stable version. +branch instead of the latest stable version along with some other behaviour changes. `brew developer` [`state`]
Display the current state of Homebrew's developer mode. diff --git a/manpages/brew.1 b/manpages/brew.1 index 6b69aaf401..3aba312e29 100644 --- a/manpages/brew.1 +++ b/manpages/brew.1 @@ -230,7 +230,7 @@ Search just names for \fItext\fR\. If \fItext\fR is flanked by slashes, it is in Search just descriptions for \fItext\fR\. If \fItext\fR is flanked by slashes, it is interpreted as a regular expression\. . .SS "\fBdeveloper\fR [\fIsubcommand\fR]" -Control Homebrew\'s developer mode\. When developer mode is enabled, \fBbrew update\fR will update Homebrew to the latest commit on the \fBmaster\fR branch instead of the latest stable version\. +Control Homebrew\'s developer mode\. When developer mode is enabled, \fBbrew update\fR will update Homebrew to the latest commit on the \fBmaster\fR branch instead of the latest stable version along with some other behaviour changes\. . .P \fBbrew developer\fR [\fBstate\fR] From 9f15432742116abe8407db5321a9a0e7df4f0ade Mon Sep 17 00:00:00 2001 From: Rylan Polster Date: Sat, 17 Jul 2021 14:08:38 -0400 Subject: [PATCH 6/9] Fix tests --- Library/Homebrew/brew.rb | 12 +++++++----- Library/Homebrew/brew.sh | 2 +- Library/Homebrew/dev-cmd/tests.rb | 1 + 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Library/Homebrew/brew.rb b/Library/Homebrew/brew.rb index 2d14cc4776..3936b77f2f 100644 --- a/Library/Homebrew/brew.rb +++ b/Library/Homebrew/brew.rb @@ -93,12 +93,14 @@ begin internal_cmd ||= begin internal_dev_cmd = Commands.valid_internal_dev_cmd?(cmd) if internal_dev_cmd && !Homebrew::EnvConfig.developer? - opoo <<~MESSAGE if ENV["HOMEBREW_DEV_CMD_RUN"].blank? - #{Tty.bold}#{cmd}#{Tty.reset} is a developer command, so - Homebrew's developer mode has been automatically turned on. - To turn developer mode off, run #{Tty.bold}brew developer off#{Tty.reset} + if ENV["HOMEBREW_DEV_CMD_RUN"].blank? && ENV["HOMEBREW_TEST"].blank? + opoo <<~MESSAGE + #{Tty.bold}#{cmd}#{Tty.reset} is a developer command, so + Homebrew's developer mode has been automatically turned on. + To turn developer mode off, run #{Tty.bold}brew developer off#{Tty.reset} - MESSAGE + MESSAGE + end Homebrew::Settings.write "devcmdrun", true ENV["HOMEBREW_DEV_CMD_RUN"] = "1" diff --git a/Library/Homebrew/brew.sh b/Library/Homebrew/brew.sh index 312a029742..b454a3f96b 100644 --- a/Library/Homebrew/brew.sh +++ b/Library/Homebrew/brew.sh @@ -645,7 +645,7 @@ elif [[ -f "${HOMEBREW_LIBRARY}/Homebrew/dev-cmd/${HOMEBREW_COMMAND}.sh" ]] then if [[ -z "${HOMEBREW_DEVELOPER}" ]] then - if [[ -z "${HOMEBREW_DEV_CMD_RUN}" ]] + if [[ -z "${HOMEBREW_DEV_CMD_RUN}" ]] && [[ -z "${HOMEBREW_TEST}" ]] then message="$(bold "${HOMEBREW_COMMAND}") is a developer command, so Homebrew's developer mode has been automatically turned on. diff --git a/Library/Homebrew/dev-cmd/tests.rb b/Library/Homebrew/dev-cmd/tests.rb index 63f8d4dc2e..df3d014350 100644 --- a/Library/Homebrew/dev-cmd/tests.rb +++ b/Library/Homebrew/dev-cmd/tests.rb @@ -87,6 +87,7 @@ module Homebrew ENV.delete(env) end + ENV["HOMEBREW_TEST"] = "1" ENV["HOMEBREW_NO_ANALYTICS_THIS_RUN"] = "1" ENV["HOMEBREW_NO_COMPAT"] = "1" if args.no_compat? ENV["HOMEBREW_TEST_GENERIC_OS"] = "1" if args.generic? From 564a207badad93788558554336856a14bb9831ab Mon Sep 17 00:00:00 2001 From: Rylan Polster Date: Mon, 19 Jul 2021 10:06:38 -0400 Subject: [PATCH 7/9] Add `HOMEBREW_NO_DEV_CMD_MESSAGE` --- Library/Homebrew/brew.rb | 2 +- Library/Homebrew/brew.sh | 2 +- Library/Homebrew/dev-cmd/tests.rb | 2 +- Library/Homebrew/env_config.rb | 4 ++++ docs/Manpage.md | 3 +++ manpages/brew.1 | 6 ++++++ 6 files changed, 16 insertions(+), 3 deletions(-) diff --git a/Library/Homebrew/brew.rb b/Library/Homebrew/brew.rb index 3936b77f2f..8513c93ebd 100644 --- a/Library/Homebrew/brew.rb +++ b/Library/Homebrew/brew.rb @@ -93,7 +93,7 @@ begin internal_cmd ||= begin internal_dev_cmd = Commands.valid_internal_dev_cmd?(cmd) if internal_dev_cmd && !Homebrew::EnvConfig.developer? - if ENV["HOMEBREW_DEV_CMD_RUN"].blank? && ENV["HOMEBREW_TEST"].blank? + if ENV["HOMEBREW_DEV_CMD_RUN"].blank? && !Homebrew::EnvConfig.no_dev_cmd_message? opoo <<~MESSAGE #{Tty.bold}#{cmd}#{Tty.reset} is a developer command, so Homebrew's developer mode has been automatically turned on. diff --git a/Library/Homebrew/brew.sh b/Library/Homebrew/brew.sh index b454a3f96b..cb2d3d6fe4 100644 --- a/Library/Homebrew/brew.sh +++ b/Library/Homebrew/brew.sh @@ -645,7 +645,7 @@ elif [[ -f "${HOMEBREW_LIBRARY}/Homebrew/dev-cmd/${HOMEBREW_COMMAND}.sh" ]] then if [[ -z "${HOMEBREW_DEVELOPER}" ]] then - if [[ -z "${HOMEBREW_DEV_CMD_RUN}" ]] && [[ -z "${HOMEBREW_TEST}" ]] + if [[ -z "${HOMEBREW_DEV_CMD_RUN}" ]] && [[ -z "${HOMEBREW_NO_DEV_CMD_MESSAGE}" ]] then message="$(bold "${HOMEBREW_COMMAND}") is a developer command, so Homebrew's developer mode has been automatically turned on. diff --git a/Library/Homebrew/dev-cmd/tests.rb b/Library/Homebrew/dev-cmd/tests.rb index df3d014350..95f97b6a8f 100644 --- a/Library/Homebrew/dev-cmd/tests.rb +++ b/Library/Homebrew/dev-cmd/tests.rb @@ -87,7 +87,7 @@ module Homebrew ENV.delete(env) end - ENV["HOMEBREW_TEST"] = "1" + ENV["HOMEBREW_NO_DEV_CMD_MESSAGE"] = "1" ENV["HOMEBREW_NO_ANALYTICS_THIS_RUN"] = "1" ENV["HOMEBREW_NO_COMPAT"] = "1" if args.no_compat? ENV["HOMEBREW_TEST_GENERIC_OS"] = "1" if args.generic? diff --git a/Library/Homebrew/env_config.rb b/Library/Homebrew/env_config.rb index 1a0aae3a4d..91a133899c 100644 --- a/Library/Homebrew/env_config.rb +++ b/Library/Homebrew/env_config.rb @@ -235,6 +235,10 @@ module Homebrew description: "If set, disable all use of legacy compatibility code.", boolean: true, }, + HOMEBREW_NO_DEV_CMD_MESSAGE: { + description: "If set, do not display a warning message when running a developer command for the first time.", + boolean: true, + }, HOMEBREW_NO_EMOJI: { 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.", diff --git a/docs/Manpage.md b/docs/Manpage.md index 8c87e39086..33e2d586f9 100644 --- a/docs/Manpage.md +++ b/docs/Manpage.md @@ -2027,6 +2027,9 @@ example, run `export HOMEBREW_NO_INSECURE_REDIRECT=1` rather than just - `HOMEBREW_NO_COMPAT`
If set, disable all use of legacy compatibility code. +- `HOMEBREW_NO_DEV_CMD_MESSAGE` +
If set, do not display a warning message when running a developer command for the first time. + - `HOMEBREW_NO_EMOJI`
If set, do not print `HOMEBREW_INSTALL_BADGE` on a successful build. diff --git a/manpages/brew.1 b/manpages/brew.1 index 3aba312e29..082fdbeafe 100644 --- a/manpages/brew.1 +++ b/manpages/brew.1 @@ -2923,6 +2923,12 @@ If set, do not print text with colour added\. If set, disable all use of legacy compatibility code\. . .TP +\fBHOMEBREW_NO_DEV_CMD_MESSAGE\fR +. +.br +If set, do not display a warning message when running a developer command for the first time\. +. +.TP \fBHOMEBREW_NO_EMOJI\fR . .br From 27ba803bb593a6c07e4dd36634660e8d6881aa48 Mon Sep 17 00:00:00 2001 From: Rylan Polster Date: Tue, 20 Jul 2021 11:47:31 -0400 Subject: [PATCH 8/9] Remove need for `HOMEBREW_NO_DEV_CMD_MESSAGE` --- Library/Homebrew/brew.rb | 2 +- Library/Homebrew/brew.sh | 2 +- Library/Homebrew/env_config.rb | 4 ---- .../support/helper/spec/shared_context/integration_test.rb | 1 + docs/Manpage.md | 3 --- manpages/brew.1 | 6 ------ 6 files changed, 3 insertions(+), 15 deletions(-) diff --git a/Library/Homebrew/brew.rb b/Library/Homebrew/brew.rb index 8513c93ebd..776d9f06f2 100644 --- a/Library/Homebrew/brew.rb +++ b/Library/Homebrew/brew.rb @@ -93,7 +93,7 @@ begin internal_cmd ||= begin internal_dev_cmd = Commands.valid_internal_dev_cmd?(cmd) if internal_dev_cmd && !Homebrew::EnvConfig.developer? - if ENV["HOMEBREW_DEV_CMD_RUN"].blank? && !Homebrew::EnvConfig.no_dev_cmd_message? + if ENV["HOMEBREW_DEV_CMD_RUN"].blank? opoo <<~MESSAGE #{Tty.bold}#{cmd}#{Tty.reset} is a developer command, so Homebrew's developer mode has been automatically turned on. diff --git a/Library/Homebrew/brew.sh b/Library/Homebrew/brew.sh index cb2d3d6fe4..312a029742 100644 --- a/Library/Homebrew/brew.sh +++ b/Library/Homebrew/brew.sh @@ -645,7 +645,7 @@ elif [[ -f "${HOMEBREW_LIBRARY}/Homebrew/dev-cmd/${HOMEBREW_COMMAND}.sh" ]] then if [[ -z "${HOMEBREW_DEVELOPER}" ]] then - if [[ -z "${HOMEBREW_DEV_CMD_RUN}" ]] && [[ -z "${HOMEBREW_NO_DEV_CMD_MESSAGE}" ]] + if [[ -z "${HOMEBREW_DEV_CMD_RUN}" ]] then message="$(bold "${HOMEBREW_COMMAND}") is a developer command, so Homebrew's developer mode has been automatically turned on. diff --git a/Library/Homebrew/env_config.rb b/Library/Homebrew/env_config.rb index 91a133899c..1a0aae3a4d 100644 --- a/Library/Homebrew/env_config.rb +++ b/Library/Homebrew/env_config.rb @@ -235,10 +235,6 @@ module Homebrew description: "If set, disable all use of legacy compatibility code.", boolean: true, }, - HOMEBREW_NO_DEV_CMD_MESSAGE: { - description: "If set, do not display a warning message when running a developer command for the first time.", - boolean: true, - }, HOMEBREW_NO_EMOJI: { 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.", diff --git a/Library/Homebrew/test/support/helper/spec/shared_context/integration_test.rb b/Library/Homebrew/test/support/helper/spec/shared_context/integration_test.rb index 9ef36a0175..c5239ebd20 100644 --- a/Library/Homebrew/test/support/helper/spec/shared_context/integration_test.rb +++ b/Library/Homebrew/test/support/helper/spec/shared_context/integration_test.rb @@ -83,6 +83,7 @@ RSpec.shared_context "integration test" do # rubocop:disable RSpec/ContextWordin "HOMEBREW_INTEGRATION_TEST" => command_id_from_args(args), "HOMEBREW_TEST_TMPDIR" => TEST_TMPDIR, "HOMEBREW_DEVELOPER" => ENV["HOMEBREW_DEVELOPER"], + "HOMEBREW_DEV_CMD_RUN" => "true", "GEM_HOME" => nil, ) diff --git a/docs/Manpage.md b/docs/Manpage.md index 33e2d586f9..8c87e39086 100644 --- a/docs/Manpage.md +++ b/docs/Manpage.md @@ -2027,9 +2027,6 @@ example, run `export HOMEBREW_NO_INSECURE_REDIRECT=1` rather than just - `HOMEBREW_NO_COMPAT`
If set, disable all use of legacy compatibility code. -- `HOMEBREW_NO_DEV_CMD_MESSAGE` -
If set, do not display a warning message when running a developer command for the first time. - - `HOMEBREW_NO_EMOJI`
If set, do not print `HOMEBREW_INSTALL_BADGE` on a successful build. diff --git a/manpages/brew.1 b/manpages/brew.1 index 082fdbeafe..3aba312e29 100644 --- a/manpages/brew.1 +++ b/manpages/brew.1 @@ -2923,12 +2923,6 @@ If set, do not print text with colour added\. If set, disable all use of legacy compatibility code\. . .TP -\fBHOMEBREW_NO_DEV_CMD_MESSAGE\fR -. -.br -If set, do not display a warning message when running a developer command for the first time\. -. -.TP \fBHOMEBREW_NO_EMOJI\fR . .br From 81d89803db83510f58360993176c3719449364c6 Mon Sep 17 00:00:00 2001 From: Rylan Polster Date: Tue, 20 Jul 2021 11:50:53 -0400 Subject: [PATCH 9/9] Remove extra `HOMEBREW_NO_DEV_CMD_MESSAGE` line --- Library/Homebrew/dev-cmd/tests.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/Library/Homebrew/dev-cmd/tests.rb b/Library/Homebrew/dev-cmd/tests.rb index 95f97b6a8f..63f8d4dc2e 100644 --- a/Library/Homebrew/dev-cmd/tests.rb +++ b/Library/Homebrew/dev-cmd/tests.rb @@ -87,7 +87,6 @@ module Homebrew ENV.delete(env) end - ENV["HOMEBREW_NO_DEV_CMD_MESSAGE"] = "1" ENV["HOMEBREW_NO_ANALYTICS_THIS_RUN"] = "1" ENV["HOMEBREW_NO_COMPAT"] = "1" if args.no_compat? ENV["HOMEBREW_TEST_GENERIC_OS"] = "1" if args.generic?