Module: Libv8::Checkout
- Included in:
- Builder
- Defined in:
- ext/libv8/checkout.rb
Constant Summary collapse
- GYP_SVN =
'http://gyp.googlecode.com/svn'
- V8_Source =
File. '../../../vendor/v8', __FILE__
- GYP_Source =
File. '../../../vendor/gyp', __FILE__
Class Method Summary collapse
Class Method Details
.check_git_svn! ⇒ Object
42 43 44 45 46 |
# File 'ext/libv8/checkout.rb', line 42 def check_git_svn! unless system 'git help svn 2>&1 > /dev/null' fail "git-svn not installed!\nPlease install git-svn." end end |
.checkout! ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'ext/libv8/checkout.rb', line 11 def checkout! # When compiling from a source gem, it's not a git repository anymore and # we assume the right code is already checked out. return unless git?(V8_Source) Dir.chdir(V8_Source) do `git fetch` `git checkout #{Libv8::VERSION.gsub(/\.\d+$/,'')} -f` `rm -f .applied_patches` end return unless git?(GYP_Source) check_git_svn! Dir.chdir(GYP_Source) do mkf = File.readlines(File.join(V8_Source, 'Makefile')) idx = mkf.index {|l| l =~ /#{GYP_SVN}/} + 1 rev = /--revision (\d+)/.match(mkf[idx])[1] `git fetch` # --git-dir is needed for older versions of git and git-svn `git --git-dir=../../.git/modules/vendor/gyp/ svn init #{GYP_SVN} -Ttrunk` `git config --replace-all svn-remote.svn.fetch trunk:refs/remotes/origin/master` `git checkout $(git --git-dir=../../.git/modules/vendor/gyp/ svn find-rev r#{rev} | tail -n 1) -f` end end |
.git?(dir) ⇒ Boolean
38 39 40 |
# File 'ext/libv8/checkout.rb', line 38 def git?(dir) File.exists?(File.join(dir, '.git')) end |