diff options
| author | Eloy Duran | 2009-09-08 00:02:28 +0200 |
|---|---|---|
| committer | Eloy Duran | 2009-09-17 00:24:11 +0200 |
| commit | c1989b79ad12f54501a749f31fa869dfbac610cd (patch) | |
| tree | 8b458f9bb3d76378d48bc8328b4786e057868152 /Library/Homebrew/refresh_brew.rb | |
| parent | c71d4ad2bc0a5e29afb9e36d688405c8ce6cd81c (diff) | |
| download | brew-c1989b79ad12f54501a749f31fa869dfbac610cd.tar.bz2 | |
Update Homebrew and list the updated formulae.
Diffstat (limited to 'Library/Homebrew/refresh_brew.rb')
| -rw-r--r-- | Library/Homebrew/refresh_brew.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/Library/Homebrew/refresh_brew.rb b/Library/Homebrew/refresh_brew.rb new file mode 100644 index 000000000..753036ed5 --- /dev/null +++ b/Library/Homebrew/refresh_brew.rb @@ -0,0 +1,36 @@ +class RefreshBrew + UPDATE_COMMAND = 'git pull origin masterbrew' + 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 + + def initialize + @updated_formulae = [] + end + + # Performs an update of the homebrew source. Returns +true+ if a newer + # version was availble, +false+ if already up-to-date. + def update_from_masterbrew! + output = git_pull! + output.split("\n").each do |line| + @updated_formulae << $1 if line =~ UPDATED_FORMULA + end + output.strip != GIT_UP_TO_DATE + end + + def pending_formulae_changes? + !@updated_formulae.empty? + end + + def current_revision + `#{REVISION_COMMAND}`.strip + end + + private + + def git_pull! + Dir.chdir(HOMEBREW_PREFIX) { `#{UPDATE_COMMAND}` } + end +end
\ No newline at end of file |
