diff options
| author | Xu Cheng | 2014-12-08 00:13:57 +0800 |
|---|---|---|
| committer | Mike McQuaid | 2014-12-09 12:59:04 +0000 |
| commit | 89bcb2a4eb8c629d0587efcd2ffd77da62364d2d (patch) | |
| tree | 9dd644d92054108906e3c331d9f2cd77888fce1b | |
| parent | 787e782fd9ff3048ab5477e4488c49bd41436187 (diff) | |
| download | homebrew-89bcb2a4eb8c629d0587efcd2ffd77da62364d2d.tar.bz2 | |
brew-doctor: warning the external commands with conflicting names
Closes #34755.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
| -rw-r--r-- | Library/Homebrew/cmd/doctor.rb | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/Library/Homebrew/cmd/doctor.rb b/Library/Homebrew/cmd/doctor.rb index d7f853851..820dd8897 100644 --- a/Library/Homebrew/cmd/doctor.rb +++ b/Library/Homebrew/cmd/doctor.rb @@ -1181,6 +1181,25 @@ end EOS end + def check_for_external_cmd_name_conflict + cmds = paths.map { |p| Dir["#{p}/brew-*"] }.flatten.uniq + cmds = cmds.select { |cmd| File.file?(cmd) && File.executable?(cmd) } + cmd_map = {} + cmds.each do |cmd| + cmd_name = File.basename(cmd, ".rb") + cmd_map[cmd_name] ||= [] + cmd_map[cmd_name] << cmd + end + cmd_map.reject! { |cmd_name, cmd_paths| cmd_paths.size == 1 } + return if cmd_map.empty? + s = "You have external commands with conflicting names." + cmd_map.each do |cmd_name, cmd_paths| + s += "\n\nFound command `#{cmd_name}` in following places:\n" + s += cmd_paths.map { |f| " #{f}" }.join("\n") + end + s + end + def all methods.map(&:to_s).grep(/^check_/) end |
