From f6cbf7bab0a4d743ca4122c39d60ea669b5f7e14 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Mon, 15 Feb 2016 11:31:10 +0000 Subject: 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 --- Library/Homebrew/global.rb | 1 + Library/brew.rb | 2 -- bin/brew | 25 ++++++++++++++++++++----- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/Library/Homebrew/global.rb b/Library/Homebrew/global.rb index d173e7df2..00028acad 100644 --- a/Library/Homebrew/global.rb +++ b/Library/Homebrew/global.rb @@ -48,6 +48,7 @@ require "compat" unless ARGV.include?("--no-compat") || ENV["HOMEBREW_NO_COMPAT" ORIGINAL_PATHS = ENV["PATH"].split(File::PATH_SEPARATOR).map { |p| Pathname.new(p).expand_path rescue nil }.compact.freeze +# TODO: remove this as soon as it's removed from commands.rb. HOMEBREW_INTERNAL_COMMAND_ALIASES = { "ls" => "list", "homepage" => "home", diff --git a/Library/brew.rb b/Library/brew.rb index 5a7ff0ac1..8675ab881 100644 --- a/Library/brew.rb +++ b/Library/brew.rb @@ -44,8 +44,6 @@ begin end end - cmd = HOMEBREW_INTERNAL_COMMAND_ALIASES.fetch(cmd, cmd) - # Add contributed commands to PATH before checking. Dir["#{HOMEBREW_LIBRARY}/Taps/*/*/cmd"].each do |tap_cmd_dir| ENV["PATH"] += "#{File::PATH_SEPARATOR}#{tap_cmd_dir}" 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 <