diff options
| author | Max Howell | 2009-11-12 03:55:09 +0000 |
|---|---|---|
| committer | Max Howell | 2009-12-07 18:20:04 +0000 |
| commit | b2fd885493e38318d28bd495c27edacdef0c2caf (patch) | |
| tree | c686357261ca3807ce70bcc80093fc9b53ebe3df /Library/Homebrew/update.rb | |
| parent | 5969700ef7c3a24724e5cf63686e79ee61f750f9 (diff) | |
| download | homebrew-b2fd885493e38318d28bd495c27edacdef0c2caf.tar.bz2 | |
Brew update will git init if required
This is necessary for those who installed Homebrew using the suggested tarball method.
Too late for them though.
Diffstat (limited to 'Library/Homebrew/update.rb')
| -rw-r--r-- | Library/Homebrew/update.rb | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/Library/Homebrew/update.rb b/Library/Homebrew/update.rb index 09399fbde..f500fdd8e 100644 --- a/Library/Homebrew/update.rb +++ b/Library/Homebrew/update.rb @@ -22,10 +22,11 @@ # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # class RefreshBrew - CHECKOUT_COMMAND = 'git checkout master' - UPDATE_COMMAND = 'git pull origin master' - REVISION_COMMAND = 'git log -l -1 --pretty=format:%H' - GIT_UP_TO_DATE = 'Already up-to-date.' + RESPOSITORY_URL = 'git://github.com/mxcl/homebrew.git' + CHECKOUT_COMMAND = 'git checkout -q master' + UPDATE_COMMAND = "git pull #{RESPOSITORY_URL} master" + REVISION_COMMAND = 'git log -l -1 --pretty=format:%H 2> /dev/null' + GIT_UP_TO_DATE = 'Already up-to-date' formula_regexp = 'Library/Formula/(.+?)\.rb' ADDED_FORMULA = %r{^\s+create mode \d+ #{formula_regexp}$} @@ -40,9 +41,16 @@ class RefreshBrew # Performs an update of the homebrew source. Returns +true+ if a newer # version was available, +false+ if already up-to-date. def update_from_masterbrew! - git_checkout_masterbrew! - output = git_pull! - + output = '' + in_prefix do + if File.directory? '.git' + safe_system CHECKOUT_COMMAND + else + safe_system "git init" + end + output = execute(UPDATE_COMMAND) + end + output.split("\n").reverse.each do |line| case line when ADDED_FORMULA @@ -63,6 +71,8 @@ class RefreshBrew def current_revision in_prefix { execute(REVISION_COMMAND).strip } + rescue + 'TAIL' end private @@ -80,12 +90,4 @@ class RefreshBrew ohai(cmd, out) if ARGV.verbose? out end - - def git_checkout_masterbrew! - in_prefix { execute CHECKOUT_COMMAND } - end - - def git_pull! - in_prefix { execute UPDATE_COMMAND } - end end |
