diff --git a/Library/Homebrew/update.rb b/Library/Homebrew/update.rb index bd45e6195f..6b2630ce0d 100644 --- a/Library/Homebrew/update.rb +++ b/Library/Homebrew/update.rb @@ -9,11 +9,12 @@ class RefreshBrew formula_regexp = 'Library/Formula/(.+?)\.rb' ADDED_FORMULA = %r{^\s+create mode \d+ #{formula_regexp}$} UPDATED_FORMULA = %r{^\s+#{formula_regexp}\s} + DELETED_FORMULA = %r{^\s+delete mode \d+ #{formula_regexp}$} - attr_reader :added_formulae, :updated_formulae + attr_reader :added_formulae, :updated_formulae, :deleted_formulae def initialize - @added_formulae, @updated_formulae = [], [] + @added_formulae, @updated_formulae, @deleted_formulae = [], [], [] end # Performs an update of the homebrew source. Returns +true+ if a newer @@ -33,12 +34,15 @@ class RefreshBrew case line when ADDED_FORMULA @added_formulae << $1 + when DELETED_FORMULA + @deleted_formulae << $1 when UPDATED_FORMULA - @updated_formulae << $1 unless @added_formulae.include?($1) + @updated_formulae << $1 unless @added_formulae.include?($1) or @deleted_formulae.include?($1) end end @added_formulae.sort! @updated_formulae.sort! + @deleted_formulae.sort! output.strip != GIT_UP_TO_DATE end @@ -47,6 +51,14 @@ class RefreshBrew !@updated_formulae.empty? end + def pending_new_formulae? + !@added_formulae.empty? + end + + def deleted_formulae? + !@deleted_formulae.empty? + end + def current_revision in_prefix { execute(REVISION_COMMAND).strip } rescue diff --git a/bin/brew b/bin/brew index 1c1f2d29a7..a9ae5a0ee7 100755 --- a/bin/brew +++ b/bin/brew @@ -171,6 +171,17 @@ begin puts "Already up-to-date." else puts "Updated Homebrew from #{old_revision[0,8]} to #{updater.current_revision[0,8]}." + ## New Formulae + if updater.pending_new_formulae? + ohai "The following formulae are new:" + puts_columns updater.added_formulae + end + ## Deleted Formulae + if updater.deleted_formulae? + ohai "The following formulae were removed:" + puts_columns updater.deleted_formulae + end + ## Updated Formulae if updater.pending_formulae_changes? ohai "The following formulae were updated:" puts_columns updater.updated_formulae