49 lines
No EOL
1.8 KiB
Ruby
49 lines
No EOL
1.8 KiB
Ruby
# coding:utf-8
|
|
RAKE_ROOT = __FILE__
|
|
|
|
require 'rubygems'
|
|
require File.expand_path(File.dirname(__FILE__) + '/../gem_rake_helper')
|
|
|
|
desc "Build vendored gems"
|
|
task :build_vendor do
|
|
raise unless File.exist?('Rakefile')
|
|
|
|
# Destroy vendor
|
|
sh "rm -rf lib/middleman-core/vendor/darwin"
|
|
sh "rm -rf lib/middleman-core/vendor/linux"
|
|
|
|
# Clone the correct gems
|
|
sh "git clone https://github.com/thibaudgg/rb-fsevent.git lib/middleman-core/vendor/darwin"
|
|
sh "cd lib/middleman-core/vendor/darwin && git checkout 1ca42b987596f350ee7b19d8f8210b7b6ae8766b"
|
|
sh "git clone https://github.com/nex3/rb-inotify.git lib/middleman-core/vendor/linux"
|
|
sh "cd lib/middleman-core/vendor/linux && git checkout 01e7487e7a8d8f26b13c6835a321390c6618ccb7"
|
|
|
|
# Strip out the .git directories
|
|
%w[darwin linux].each {|platform| sh "rm -rf lib/middleman-core/vendor/#{platform}/.git"}
|
|
|
|
# Move ext directory of darwin to root
|
|
sh "mkdir -p ext"
|
|
sh "cp -r lib/middleman-core/vendor/darwin/ext/* ext/"
|
|
|
|
# Alter darwin extconf.rb
|
|
extconf_path = File.expand_path("../ext/extconf.rb", __FILE__)
|
|
extconf_contents = File.read(extconf_path)
|
|
extconf_contents.sub!(/puts "Warning/, '#\0')
|
|
extconf_contents.gsub!(/bin\/fsevent_watch/, 'bin/fsevent_watch_guard')
|
|
File.open(extconf_path, 'w') { |f| f << extconf_contents }
|
|
|
|
# Alter lib/middleman-core/vendor/darwin/lib/rb-fsevent/fsevent.rb
|
|
fsevent_path = File.expand_path("../lib/middleman-core/vendor/darwin/lib/rb-fsevent/fsevent.rb", __FILE__)
|
|
fsevent_contents = File.read(fsevent_path)
|
|
fsevent_contents.sub!(/fsevent_watch/, 'fsevent_watch_guard')
|
|
fsevent_contents.sub!(/'\.\.'/, "'..', '..', '..', '..', '..'")
|
|
|
|
File.open(fsevent_path, 'w') { |f| f << fsevent_contents }
|
|
end
|
|
|
|
desc "Compile mac executable"
|
|
task :build_mac_exec do
|
|
Dir.chdir(File.expand_path("../ext", __FILE__)) do
|
|
system("ruby extconf.rb") or raise
|
|
end
|
|
end |