aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike McQuaid2017-04-22 17:08:36 +0100
committerMike McQuaid2017-04-22 17:08:36 +0100
commitcd5924950e9496987bdd7ef0bf7a8ed47f2553a0 (patch)
tree91797177f687cb58130acf8fb0d77ee4a1687569
parent5c82e0d5527754e902f84572f6fd28c24a72fe88 (diff)
downloadbrew-cd5924950e9496987bdd7ef0bf7a8ed47f2553a0.tar.bz2
readall: check for shadowed aliases.
If an alias has the same name as a formula then weirdness will result so ensure this causes `readall` to fail.
-rw-r--r--Library/Homebrew/readall.rb23
1 files changed, 15 insertions, 8 deletions
diff --git a/Library/Homebrew/readall.rb b/Library/Homebrew/readall.rb
index 3dd7075ec..a26a4d60c 100644
--- a/Library/Homebrew/readall.rb
+++ b/Library/Homebrew/readall.rb
@@ -24,14 +24,21 @@ module Readall
!failed
end
- def valid_aliases?(alias_dirs)
+ def valid_aliases?(alias_dir, formula_dir)
+ return false unless alias_dir.directory?
+
failed = false
- alias_dirs.each do |alias_dir|
- next unless alias_dir.directory?
- alias_dir.children.each do |f|
- next unless f.symlink?
- next if f.file?
- onoe "Broken alias: #{f}"
+ alias_dir.each_child do |f|
+ if !f.symlink?
+ onoe "Non-symlink alias: #{f}"
+ failed = true
+ elsif !f.file?
+ onoe "Non-file alias: #{f}"
+ failed = true
+ end
+
+ if (formula_dir/"#{f.basename}.rb").exist?
+ onoe "Formula duplicating alias: #{f}"
failed = true
end
end
@@ -57,7 +64,7 @@ module Readall
def valid_tap?(tap, options = {})
failed = false
if options[:aliases]
- valid_aliases = valid_aliases?([tap.alias_dir])
+ valid_aliases = valid_aliases?(tap.alias_dir, tap.formula_dir)
failed = true unless valid_aliases
end
valid_formulae = valid_formulae?(tap.formula_files)