aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/update.rb
diff options
context:
space:
mode:
authorMax Howell2009-11-12 03:55:09 +0000
committerMax Howell2009-12-07 18:20:04 +0000
commitb2fd885493e38318d28bd495c27edacdef0c2caf (patch)
treec686357261ca3807ce70bcc80093fc9b53ebe3df /Library/Homebrew/update.rb
parent5969700ef7c3a24724e5cf63686e79ee61f750f9 (diff)
downloadhomebrew-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.rb32
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