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 "commands"
|
||||||
require "settings"
|
require "settings"
|
||||||
|
|
||||||
if cmd
|
internal_cmd = Commands.valid_internal_cmd?(cmd) || Commands.valid_internal_dev_cmd?(cmd) 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
|
|
||||||
|
|
||||||
unless internal_cmd
|
unless internal_cmd
|
||||||
# Add contributed commands to PATH before checking.
|
# Add contributed commands to PATH before checking.
|
||||||
|
@ -718,25 +718,61 @@ then
|
|||||||
fi
|
fi
|
||||||
export HOMEBREW_CORE_GIT_REMOTE
|
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" ]]
|
if [[ -f "${HOMEBREW_LIBRARY}/Homebrew/cmd/${HOMEBREW_COMMAND}.sh" ]]
|
||||||
then
|
then
|
||||||
HOMEBREW_BASH_COMMAND="${HOMEBREW_LIBRARY}/Homebrew/cmd/${HOMEBREW_COMMAND}.sh"
|
HOMEBREW_BASH_COMMAND="${HOMEBREW_LIBRARY}/Homebrew/cmd/${HOMEBREW_COMMAND}.sh"
|
||||||
elif [[ -f "${HOMEBREW_LIBRARY}/Homebrew/dev-cmd/${HOMEBREW_COMMAND}.sh" ]]
|
elif [[ -f "${HOMEBREW_LIBRARY}/Homebrew/dev-cmd/${HOMEBREW_COMMAND}.sh" ]]
|
||||||
then
|
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"
|
HOMEBREW_BASH_COMMAND="${HOMEBREW_LIBRARY}/Homebrew/dev-cmd/${HOMEBREW_COMMAND}.sh"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user