aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorMike McQuaid2016-12-30 18:43:50 +0000
committerMike McQuaid2016-12-30 18:43:50 +0000
commit35ae78f43d45369f86b8c56c04ccca1119fdb1d1 (patch)
tree88054265d9b012dad8e8f236fe15ae19a5b5dd1f /Library
parente2689a697cd892910fd9bbdbae38d1dd67cf426b (diff)
downloadbrew-35ae78f43d45369f86b8c56c04ccca1119fdb1d1.tar.bz2
formula_versions: handle uncommitted formulae.
Otherwise an uncommitted formula can trigger an invalid `brew audit` result. Fixes #1731.
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/formula_versions.rb29
1 files changed, 19 insertions, 10 deletions
diff --git a/Library/Homebrew/formula_versions.rb b/Library/Homebrew/formula_versions.rb
index 28c2a3be8..34b766fde 100644
--- a/Library/Homebrew/formula_versions.rb
+++ b/Library/Homebrew/formula_versions.rb
@@ -15,6 +15,7 @@ class FormulaVersions
@repository = formula.tap.path
@entry_name = @path.relative_path_from(repository).to_s
@max_depth = options[:max_depth]
+ @current_formula = formula
end
def rev_list(branch)
@@ -64,25 +65,33 @@ class FormulaVersions
attributes.each do |attribute|
attributes_map[attribute] ||= {}
+ # Set the attributes for the current formula in case it's not been
+ # committed yet.
+ set_attribute_map(attributes_map[attribute], @current_formula, attribute)
end
rev_list(branch) do |rev|
formula_at_revision(rev) do |f|
attributes.each do |attribute|
- map = attributes_map[attribute]
- if f.stable
- map[:stable] ||= {}
- map[:stable][f.stable.version] ||= []
- map[:stable][f.stable.version] << f.send(attribute)
- end
- next unless f.devel
- map[:devel] ||= {}
- map[:devel][f.devel.version] ||= []
- map[:devel][f.devel.version] << f.send(attribute)
+ set_attribute_map(attributes_map[attribute], f, attribute)
end
end
end
attributes_map
end
+
+ private
+
+ def set_attribute_map(map, f, attribute)
+ if f.stable
+ map[:stable] ||= {}
+ map[:stable][f.stable.version] ||= []
+ map[:stable][f.stable.version] << f.send(attribute)
+ end
+ return unless f.devel
+ map[:devel] ||= {}
+ map[:devel][f.devel.version] ||= []
+ map[:devel][f.devel.version] << f.send(attribute)
+ end
end