aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorEloy Duran2009-09-20 17:54:10 +0200
committerMax Howell2009-09-28 00:20:50 +0100
commit1022c23990d300eaa93da3736db2691896b20664 (patch)
treeedc3fac6362a5880a6f8a84f393fc9e88261c95f /Library
parentaf6c8902945c9b31efcd3cc65a8c76cf2c82296d (diff)
downloadbrew-1022c23990d300eaa93da3736db2691896b20664.tar.bz2
Properly distinguish between added and updated formulae.
Diffstat (limited to 'Library')
-rwxr-xr-xLibrary/Homebrew/unittest.rb7
-rw-r--r--Library/Homebrew/update.rb24
2 files changed, 23 insertions, 8 deletions
diff --git a/Library/Homebrew/unittest.rb b/Library/Homebrew/unittest.rb
index d594a9af5..27e9c0d93 100755
--- a/Library/Homebrew/unittest.rb
+++ b/Library/Homebrew/unittest.rb
@@ -101,7 +101,7 @@ class RefreshBrewMock < RefreshBrew
end
def expectations_met?
- @expect.keys == @called
+ @expect.keys.sort == @called.sort
end
def inspect
@@ -533,6 +533,7 @@ class BeerTasting <Test::Unit::TestCase
assert_equal false, updater.update_from_masterbrew!
assert updater.expectations_met?
assert updater.updated_formulae.empty?
+ assert updater.added_formulae.empty?
end
end
@@ -546,6 +547,7 @@ class BeerTasting <Test::Unit::TestCase
assert_equal true, updater.update_from_masterbrew!
assert !updater.pending_formulae_changes?
assert updater.updated_formulae.empty?
+ assert updater.added_formulae.empty?
end
end
@@ -558,7 +560,8 @@ class BeerTasting <Test::Unit::TestCase
assert_equal true, updater.update_from_masterbrew!
assert updater.pending_formulae_changes?
- assert_equal %w{ antiword bash-completion xar yajl }, updater.updated_formulae
+ assert_equal %w{ xar yajl }, updater.updated_formulae
+ assert_equal %w{ antiword bash-completion ddrescue dict lua }, updater.added_formulae
end
end
diff --git a/Library/Homebrew/update.rb b/Library/Homebrew/update.rb
index 6bbf4b8c0..0e1bcb91f 100644
--- a/Library/Homebrew/update.rb
+++ b/Library/Homebrew/update.rb
@@ -26,12 +26,15 @@ class RefreshBrew
UPDATE_COMMAND = 'git pull origin master'
REVISION_COMMAND = 'git log -l -1 --pretty=format:%H'
GIT_UP_TO_DATE = 'Already up-to-date.'
- UPDATED_FORMULA = %r{^\s+Library/Formula/(.+?)\.rb\s}
- attr_reader :updated_formulae
+ formula_regexp = 'Library/Formula/(.+?)\.rb'
+ ADDED_FORMULA = %r{^\s+create mode \d+ #{formula_regexp}$}
+ UPDATED_FORMULA = %r{^\s+#{formula_regexp}\s}
+
+ attr_reader :added_formulae, :updated_formulae
def initialize
- @updated_formulae = []
+ @added_formulae, @updated_formulae = [], []
end
# Performs an update of the homebrew source. Returns +true+ if a newer
@@ -39,9 +42,18 @@ class RefreshBrew
def update_from_masterbrew!
git_checkout_masterbrew!
output = git_pull!
- output.split("\n").each do |line|
- @updated_formulae << $1 if line =~ UPDATED_FORMULA
+
+ output.split("\n").reverse.each do |line|
+ case line
+ when ADDED_FORMULA
+ @added_formulae << $1
+ when UPDATED_FORMULA
+ @updated_formulae << $1 unless @added_formulae.include?($1)
+ end
end
+ @added_formulae.sort!
+ @updated_formulae.sort!
+
output.strip != GIT_UP_TO_DATE
end
@@ -63,7 +75,7 @@ class RefreshBrew
out = `#{cmd}`
unless $?.success?
puts out
- raise "Failed while executing #{cmd}"
+ raise "Failed while executing #{cmd}"
end
ohai(cmd, out) if ARGV.verbose?
out