2016-04-08 16:28:43 +02:00
|
|
|
#: * `command` <cmd>:
|
|
|
|
#: Display the path to the file which is used when invoking `brew` <cmd>.
|
|
|
|
|
2015-06-26 15:19:27 +08:00
|
|
|
module Homebrew
|
|
|
|
def command
|
2015-09-29 15:39:08 +02:00
|
|
|
abort "This command requires a command argument" if ARGV.empty?
|
2015-06-26 15:19:27 +08:00
|
|
|
cmd = ARGV.first
|
|
|
|
cmd = HOMEBREW_INTERNAL_COMMAND_ALIASES.fetch(cmd, cmd)
|
|
|
|
|
2016-01-18 01:22:35 +01:00
|
|
|
if (path = internal_command_path cmd)
|
2015-06-26 15:19:27 +08:00
|
|
|
puts path
|
|
|
|
elsif (path = which("brew-#{cmd}") || which("brew-#{cmd}.rb"))
|
|
|
|
puts path
|
|
|
|
else
|
|
|
|
odie "Unknown command: #{cmd}"
|
|
|
|
end
|
|
|
|
end
|
2016-01-18 01:22:35 +01:00
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def internal_command_path(cmd)
|
|
|
|
extensions = %w[rb sh]
|
|
|
|
paths = extensions.map { |ext| HOMEBREW_LIBRARY_PATH/"cmd/#{cmd}.#{ext}" }
|
|
|
|
|
|
|
|
if ARGV.homebrew_developer?
|
|
|
|
paths += extensions.map { |ext| HOMEBREW_LIBRARY_PATH/"dev-cmd/#{cmd}.#{ext}" }
|
|
|
|
end
|
|
|
|
|
|
|
|
paths.find { |p| p.file? }
|
|
|
|
end
|
2015-06-26 15:19:27 +08:00
|
|
|
end
|