aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew/cmd')
-rw-r--r--Library/Homebrew/cmd/doctor.rb19
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