diff options
| author | Mike McQuaid | 2017-04-22 17:08:36 +0100 | 
|---|---|---|
| committer | Mike McQuaid | 2017-04-22 17:08:36 +0100 | 
| commit | cd5924950e9496987bdd7ef0bf7a8ed47f2553a0 (patch) | |
| tree | 91797177f687cb58130acf8fb0d77ee4a1687569 /Library | |
| parent | 5c82e0d5527754e902f84572f6fd28c24a72fe88 (diff) | |
| download | brew-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.
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/readall.rb | 23 | 
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)  | 
