mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
Merge pull request #12323 from Rylan12/cleanup-developer-mode-handling
Cleanup developer mode handling in `brew.{sh,rb}`
This commit is contained in:
commit
66c0b8c6f3
@ -86,44 +86,7 @@ begin
|
||||
require "commands"
|
||||
require "settings"
|
||||
|
||||
if cmd
|
||||
internal_cmd = Commands.valid_internal_cmd?(cmd)
|
||||
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?
|
||||
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
|
||||
end
|
||||
|
||||
Homebrew::Settings.write "devcmdrun", true
|
||||
ENV["HOMEBREW_DEV_CMD_RUN"] = "1"
|
||||
end
|
||||
internal_dev_cmd
|
||||
end
|
||||
end
|
||||
|
||||
developer_mode = if cmd == "developer" && ARGV.include?("on")
|
||||
true
|
||||
elsif cmd == "developer" && ARGV.include?("off")
|
||||
false
|
||||
else
|
||||
Homebrew::EnvConfig.developer? || Homebrew::Settings.read("devcmdrun") == "true"
|
||||
end
|
||||
|
||||
if internal_dev_cmd && Homebrew::EnvConfig.install_from_api?
|
||||
odie "Developer commands cannot be run while HOMEBREW_INSTALL_FROM_API is set!"
|
||||
elsif Homebrew::EnvConfig.install_from_api? && developer_mode
|
||||
opoo <<~MESSAGE
|
||||
Developers should not have HOMEBREW_INSTALL_FROM_API set!
|
||||
Please unset HOMEBREW_INSTALL_FROM_API or turn developer mode off by running:
|
||||
brew developer off
|
||||
MESSAGE
|
||||
end
|
||||
internal_cmd = Commands.valid_internal_cmd?(cmd) || Commands.valid_internal_dev_cmd?(cmd) if cmd
|
||||
|
||||
unless internal_cmd
|
||||
# Add contributed commands to PATH before checking.
|
||||
|
@ -718,25 +718,61 @@ then
|
||||
fi
|
||||
export HOMEBREW_CORE_GIT_REMOTE
|
||||
|
||||
# Set HOMEBREW_DEVELOPER_COMMAND if the command being run is a developer command
|
||||
if [[ -f "${HOMEBREW_LIBRARY}/Homebrew/dev-cmd/${HOMEBREW_COMMAND}.sh" ]] ||
|
||||
[[ -f "${HOMEBREW_LIBRARY}/Homebrew/dev-cmd/${HOMEBREW_COMMAND}.rb" ]]
|
||||
then
|
||||
export HOMEBREW_DEVELOPER_COMMAND="1"
|
||||
fi
|
||||
|
||||
# Set HOMEBREW_DEVELOPER_MODE if this command will turn (or keep) developer mode on. This is the case if:
|
||||
# - The command being run is not `brew developer off`
|
||||
# - Any of the following are true
|
||||
# - HOMEBREW_DEVELOPER is set
|
||||
# - HOMEBREW_DEV_CMD_RUN is set
|
||||
# - A developer command is being run
|
||||
# - The command being run is `brew developer on`
|
||||
if [[ "${HOMEBREW_COMMAND}" != "developer" || ! $* =~ "off" ]] &&
|
||||
[[ -n "${HOMEBREW_DEVELOPER}" ||
|
||||
-n "${HOMEBREW_DEV_CMD_RUN}" ||
|
||||
-n "${HOMEBREW_DEVELOPER_COMMAND}" ||
|
||||
"${HOMEBREW_COMMAND}" == "developer" && $* =~ "on" ]]
|
||||
then
|
||||
export HOMEBREW_DEVELOPER_MODE="1"
|
||||
fi
|
||||
|
||||
if [[ -n "${HOMEBREW_INSTALL_FROM_API}" && -n "${HOMEBREW_DEVELOPER_COMMAND}" ]]
|
||||
then
|
||||
odie "Developer commands cannot be run while HOMEBREW_INSTALL_FROM_API is set!"
|
||||
elif [[ -n "${HOMEBREW_INSTALL_FROM_API}" && -n "${HOMEBREW_DEVELOPER_MODE}" ]]
|
||||
then
|
||||
message="Developers should not have HOMEBREW_INSTALL_FROM_API set!
|
||||
Please unset HOMEBREW_INSTALL_FROM_API or turn developer mode off by running:
|
||||
brew developer off
|
||||
"
|
||||
opoo "${message}"
|
||||
fi
|
||||
|
||||
if [[ -n "${HOMEBREW_DEVELOPER_COMMAND}" && -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
|
||||
|
||||
if [[ -f "${HOMEBREW_LIBRARY}/Homebrew/cmd/${HOMEBREW_COMMAND}.sh" ]]
|
||||
then
|
||||
HOMEBREW_BASH_COMMAND="${HOMEBREW_LIBRARY}/Homebrew/cmd/${HOMEBREW_COMMAND}.sh"
|
||||
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
|
||||
HOMEBREW_BASH_COMMAND="${HOMEBREW_LIBRARY}/Homebrew/dev-cmd/${HOMEBREW_COMMAND}.sh"
|
||||
fi
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user