Module: Libv8::Patcher

Included in:
Builder
Defined in:
ext/libv8/patcher.rb

Constant Summary collapse

PATCH_DIRECTORY =
File.expand_path '../../../patches', __FILE__

Class Method Summary collapse

Class Method Details

.patch!Object



7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'ext/libv8/patcher.rb', line 7

def patch!
  File.open(".applied_patches", File::RDWR|File::CREAT) do |f|
    available_patches = Dir.glob(File.join(PATCH_DIRECTORY, '*.patch')).sort
    applied_patches = f.readlines.map(&:chomp)

    (available_patches - applied_patches).each do |patch|
      puts "Applying #{patch}"
      `patch -p1 -N < #{patch}`
      fail "failed to apply patch #{patch}" unless $?.success?
      f.puts patch
    end
  end
end