From 7a68b4a3f96c0cc76f94de2cd72b463b40be0343 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Sun, 5 Nov 2017 15:37:57 +0000 Subject: Refactor command handling code Don’t rely on having external commands always present in the PATH in order to find them. Instead, provide an accessory method to Tap so they can be added and used when needed. While we’re here, do some general refactoring and cleanup of the command code in these places. --- Library/Homebrew/cmd/command.rb | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'Library/Homebrew/cmd/command.rb') diff --git a/Library/Homebrew/cmd/command.rb b/Library/Homebrew/cmd/command.rb index 39e8ba6fc..d964fa1a9 100644 --- a/Library/Homebrew/cmd/command.rb +++ b/Library/Homebrew/cmd/command.rb @@ -8,15 +8,16 @@ module Homebrew def command abort "This command requires a command argument" if ARGV.empty? - cmd = ARGV.first - cmd = HOMEBREW_INTERNAL_COMMAND_ALIASES.fetch(cmd, cmd) - if (path = Commands.path(cmd)) - puts path - elsif (path = which("brew-#{cmd}") || which("brew-#{cmd}.rb")) - puts path - else - odie "Unknown command: #{cmd}" - end + cmd = HOMEBREW_INTERNAL_COMMAND_ALIASES.fetch(ARGV.first, ARGV.first) + + path = Commands.path(cmd) + + cmd_paths = PATH.new(ENV["PATH"]).append(Tap.cmd_directories) unless path + path ||= which("brew-#{cmd}", cmd_paths) + path ||= which("brew-#{cmd}.rb", cmd_paths) + + odie "Unknown command: #{cmd}" unless path + puts path end end -- cgit v1.2.3