aboutsummaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorMike McQuaid2016-02-15 11:31:10 +0000
committerMike McQuaid2016-02-15 11:35:25 +0000
commitf6cbf7bab0a4d743ca4122c39d60ea669b5f7e14 (patch)
treef31226e51dc394004c41ab8797f4ede8ed461546 /bin
parent775c4eedd7f6342ccfe7fe802a5935cb78ab050d (diff)
downloadbrew-f6cbf7bab0a4d743ca4122c39d60ea669b5f7e14.tar.bz2
Move internal command aliases from Ruby to Bash.
This means that internal command aliases can be used for Bash commands (such as the new, Bash-based `brew update`). Fixes Homebrew/homebrew#49182. Closes Homebrew/homebrew#49184. Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
Diffstat (limited to 'bin')
-rwxr-xr-xbin/brew25
1 files changed, 20 insertions, 5 deletions
diff --git a/bin/brew b/bin/brew
index 732f7e03d..2184652fe 100755
--- a/bin/brew
+++ b/bin/brew
@@ -135,6 +135,24 @@ then
fi
HOMEBREW_COMMAND="$1"
+shift
+case "$HOMEBREW_COMMAND" in
+ ls) HOMEBREW_COMMAND="list";;
+ homepage) HOMEBREW_COMMAND="home";;
+ -S) HOMEBREW_COMMAND="search";;
+ up) HOMEBREW_COMMAND="update";;
+ ln) HOMEBREW_COMMAND="link";;
+ instal) HOMEBREW_COMMAND="install";; # gem does the same
+ rm) HOMEBREW_COMMAND="uninstall";;
+ remove) HOMEBREW_COMMAND="uninstall";;
+ configure) HOMEBREW_COMMAND="diy";;
+ abv) HOMEBREW_COMMAND="info";;
+ dr) HOMEBREW_COMMAND="doctor";;
+ --repo) HOMEBREW_COMMAND="--repository";;
+ environment) HOMEBREW_COMMAND="--env";;
+ --config) HOMEBREW_COMMAND="config";;
+esac
+
if [[ -f "$HOMEBREW_LIBRARY/Homebrew/cmd/$HOMEBREW_COMMAND.sh" ]] ; then
HOMEBREW_BASH_COMMAND="$HOMEBREW_LIBRARY/Homebrew/cmd/$HOMEBREW_COMMAND.sh"
elif [[ -n "$HOMEBREW_DEVELOPER" && -f "$HOMEBREW_LIBRARY/Homebrew/dev-cmd/$HOMEBREW_COMMAND.sh" ]] ; then
@@ -144,7 +162,7 @@ fi
if [[ "$(id -u)" = "0" && "$(/usr/bin/stat -f%u "$HOMEBREW_BREW_FILE")" != "0" ]]
then
case "$HOMEBREW_COMMAND" in
- instal|install|reinstall|postinstall|ln|link|pin|update|update-ruby|upgrade|create|migrate|tap|switch)
+ install|reinstall|postinstall|ln|link|pin|update|update-ruby|upgrade|create|migrate|tap|switch)
odie <<EOS
Cowardly refusing to 'sudo brew $HOMEBREW_COMMAND'
You can use brew with sudo, but only if the brew executable is owned by root.
@@ -157,9 +175,6 @@ fi
if [[ -n "$HOMEBREW_BASH_COMMAND" ]]
then
- # Bash commands don't need the first argument, which is just the command name.
- shift
-
# source rather than executing directly to ensure the entire file is read into
# memory before it is run. This makes running a Bash script behave more like
# a Ruby script and avoids hard-to-debug issues if the Bash script is updated
@@ -170,5 +185,5 @@ then
source "$HOMEBREW_BASH_COMMAND"
{ "homebrew-$HOMEBREW_COMMAND" "$@"; exit $?; }
else
- exec "$HOMEBREW_RUBY_PATH" -W0 "$HOMEBREW_LIBRARY/brew.rb" "$@"
+ exec "$HOMEBREW_RUBY_PATH" -W0 "$HOMEBREW_LIBRARY/brew.rb" "$HOMEBREW_COMMAND" "$@"
fi