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.
This commit is contained in:
parent
19039471c0
commit
4254661c66
@ -22,10 +22,11 @@
|
|||||||
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#
|
#
|
||||||
class RefreshBrew
|
class RefreshBrew
|
||||||
CHECKOUT_COMMAND = 'git checkout master'
|
RESPOSITORY_URL = 'git://github.com/mxcl/homebrew.git'
|
||||||
UPDATE_COMMAND = 'git pull origin master'
|
CHECKOUT_COMMAND = 'git checkout -q master'
|
||||||
REVISION_COMMAND = 'git log -l -1 --pretty=format:%H'
|
UPDATE_COMMAND = "git pull #{RESPOSITORY_URL} master"
|
||||||
GIT_UP_TO_DATE = 'Already up-to-date.'
|
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'
|
formula_regexp = 'Library/Formula/(.+?)\.rb'
|
||||||
ADDED_FORMULA = %r{^\s+create mode \d+ #{formula_regexp}$}
|
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
|
# Performs an update of the homebrew source. Returns +true+ if a newer
|
||||||
# version was available, +false+ if already up-to-date.
|
# version was available, +false+ if already up-to-date.
|
||||||
def update_from_masterbrew!
|
def update_from_masterbrew!
|
||||||
git_checkout_masterbrew!
|
output = ''
|
||||||
output = git_pull!
|
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|
|
output.split("\n").reverse.each do |line|
|
||||||
case line
|
case line
|
||||||
when ADDED_FORMULA
|
when ADDED_FORMULA
|
||||||
@ -63,6 +71,8 @@ class RefreshBrew
|
|||||||
|
|
||||||
def current_revision
|
def current_revision
|
||||||
in_prefix { execute(REVISION_COMMAND).strip }
|
in_prefix { execute(REVISION_COMMAND).strip }
|
||||||
|
rescue
|
||||||
|
'TAIL'
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
@ -80,12 +90,4 @@ class RefreshBrew
|
|||||||
ohai(cmd, out) if ARGV.verbose?
|
ohai(cmd, out) if ARGV.verbose?
|
||||||
out
|
out
|
||||||
end
|
end
|
||||||
|
|
||||||
def git_checkout_masterbrew!
|
|
||||||
in_prefix { execute CHECKOUT_COMMAND }
|
|
||||||
end
|
|
||||||
|
|
||||||
def git_pull!
|
|
||||||
in_prefix { execute UPDATE_COMMAND }
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
6
bin/brew
6
bin/brew
@ -132,7 +132,8 @@ begin
|
|||||||
exec_editor *paths
|
exec_editor *paths
|
||||||
end
|
end
|
||||||
|
|
||||||
when 'up', 'update'
|
when 'up', 'update'
|
||||||
|
if system "/usr/bin/which -s git"
|
||||||
require 'update'
|
require 'update'
|
||||||
updater = RefreshBrew.new
|
updater = RefreshBrew.new
|
||||||
old_revision = updater.current_revision
|
old_revision = updater.current_revision
|
||||||
@ -147,6 +148,9 @@ begin
|
|||||||
puts "No formulae were updated." unless updater.pending_formulae_changes?
|
puts "No formulae were updated." unless updater.pending_formulae_changes?
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
else
|
||||||
|
abort "Please `brew install git' first."
|
||||||
|
end
|
||||||
|
|
||||||
when 'ln', 'link'
|
when 'ln', 'link'
|
||||||
ARGV.kegs.each {|keg| puts "#{keg.link} links created for #{keg}"}
|
ARGV.kegs.each {|keg| puts "#{keg.link} links created for #{keg}"}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user