diff options
| author | Mike McQuaid | 2017-03-26 20:36:37 +0100 | 
|---|---|---|
| committer | Mike McQuaid | 2017-03-26 20:36:37 +0100 | 
| commit | 181275c016adb6340553ebceb4042fea7e5c90e0 (patch) | |
| tree | 080f5ff1b785e030996060d81f5bd75e3dd43a8a /Library/Homebrew/dev-cmd/audit.rb | |
| parent | a34f7277deda844a680f7c4726e46fd9c1bc8bbf (diff) | |
| download | brew-181275c016adb6340553ebceb4042fea7e5c90e0.tar.bz2 | |
audit: check for unversioned formulae.
If we're adding a versioned formulae we want to ensure that there's also
an unversioned one too.
Diffstat (limited to 'Library/Homebrew/dev-cmd/audit.rb')
| -rw-r--r-- | Library/Homebrew/dev-cmd/audit.rb | 44 | 
1 files changed, 26 insertions, 18 deletions
diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index 9f296ca66..327628ac1 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -331,25 +331,33 @@ class FormulaAuditor      problem "File should end with a newline" unless text.trailing_newline? -    versioned_formulae = Dir[formula.path.to_s.gsub(/\.rb$/, "@*.rb")] -    needs_versioned_alias = !versioned_formulae.empty? && -                            formula.tap && -                            formula.aliases.grep(/.@\d/).empty? -    if needs_versioned_alias -      _, last_alias_version = File.basename(versioned_formulae.sort.reverse.first) -                                  .gsub(/\.rb$/, "") -                                  .split("@") -      major, minor, = formula.version.to_s.split(".") -      alias_name = if last_alias_version.split(".").length == 1 -        "#{formula.name}@#{major}" -      else -        "#{formula.name}@#{major}.#{minor}" +    if formula.versioned_formula? +      unversioned_formula = Pathname.new formula.path.to_s.gsub(/@.*\.rb$/, ".rb") +      unless unversioned_formula.exist? +        unversioned_name = unversioned_formula.basename(".rb") +        problem "#{formula} is versioned but no #{unversioned_name} formula exists" +      end +    else +      versioned_formulae = Dir[formula.path.to_s.gsub(/\.rb$/, "@*.rb")] +      needs_versioned_alias = !versioned_formulae.empty? && +                              formula.tap && +                              formula.aliases.grep(/.@\d/).empty? +      if needs_versioned_alias +        _, last_alias_version = File.basename(versioned_formulae.sort.reverse.first) +                                    .gsub(/\.rb$/, "") +                                    .split("@") +        major, minor, = formula.version.to_s.split(".") +        alias_name = if last_alias_version.split(".").length == 1 +          "#{formula.name}@#{major}" +        else +          "#{formula.name}@#{major}.#{minor}" +        end +        problem <<-EOS.undent +          Formula has other versions so create an alias: +            cd #{formula.tap.alias_dir} +            ln -s #{formula.path.to_s.gsub(formula.tap.path, "..")} #{alias_name} +        EOS        end -      problem <<-EOS.undent -        Formula has other versions so create an alias: -          cd #{formula.tap.alias_dir} -          ln -s #{formula.path.to_s.gsub(formula.tap.path, "..")} #{alias_name} -      EOS      end      return unless @strict  | 
