Merge pull request #1850 from MikeMcQuaid/audit-version-aliases
audit: check for version aliases.
This commit is contained in:
commit
8a4bfff2c0
@ -295,6 +295,27 @@ class FormulaAuditor
|
|||||||
|
|
||||||
problem "File should end with a newline" unless text.trailing_newline?
|
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
|
return unless @strict
|
||||||
|
|
||||||
present = audit_components
|
present = audit_components
|
||||||
@ -410,7 +431,8 @@ class FormulaAuditor
|
|||||||
problem "Dependency '#{dep.name}' was renamed; use new name '#{dep_f.name}'."
|
problem "Dependency '#{dep.name}' was renamed; use new name '#{dep_f.name}'."
|
||||||
end
|
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}'."
|
problem "Dependency '#{dep.name}' is an alias; use the canonical name '#{dep.to_formula.full_name}'."
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -24,16 +24,15 @@ module Readall
|
|||||||
!failed
|
!failed
|
||||||
end
|
end
|
||||||
|
|
||||||
def valid_aliases?(alias_dirs)
|
def valid_aliases?(alias_dir, formula_dir)
|
||||||
|
return false unless alias_dir.directory?
|
||||||
|
|
||||||
failed = false
|
failed = false
|
||||||
alias_dirs.each do |alias_dir|
|
alias_dir.each_child do |f|
|
||||||
next unless alias_dir.directory?
|
next unless f.symlink?
|
||||||
alias_dir.children.each do |f|
|
next if f.file? && !(formula_dir/"#{f.basename}.rb").exist?
|
||||||
next unless f.symlink?
|
onoe "Broken alias: #{f}"
|
||||||
next if f.file?
|
failed = true
|
||||||
onoe "Broken alias: #{f}"
|
|
||||||
failed = true
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
!failed
|
!failed
|
||||||
end
|
end
|
||||||
@ -57,7 +56,7 @@ module Readall
|
|||||||
def valid_tap?(tap, options = {})
|
def valid_tap?(tap, options = {})
|
||||||
failed = false
|
failed = false
|
||||||
if options[:aliases]
|
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
|
failed = true unless valid_aliases
|
||||||
end
|
end
|
||||||
valid_formulae = valid_formulae?(tap.formula_files)
|
valid_formulae = valid_formulae?(tap.formula_files)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user