Merge pull request #2107 from MikeMcQuaid/audit-version-aliases
audit: check for version aliases.
This commit is contained in:
		
						commit
						d0a965e2ab
					
				@ -329,6 +329,27 @@ 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}"
 | 
			
		||||
      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
 | 
			
		||||
 | 
			
		||||
    present = audit_components
 | 
			
		||||
@ -444,7 +465,8 @@ class FormulaAuditor
 | 
			
		||||
          problem "Dependency '#{dep.name}' was renamed; use new name '#{dep_f.name}'."
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        if @@aliases.include?(dep.name)
 | 
			
		||||
        if @@aliases.include?(dep.name) &&
 | 
			
		||||
           (core_formula? || !dep_f.versioned_formula?)
 | 
			
		||||
          problem "Dependency '#{dep.name}' is an alias; use the canonical name '#{dep.to_formula.full_name}'."
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user