#!/usr/bin/env ruby require '../common' require 'objective-j' require 'rake' require 'rake/clean' require 'fileutils' $ENVIRONMENT_NARWHAL_PRODUCT = $ENVIRONMENT_DIR $ENVIRONMENT_PACKAGES_PRODUCT = File.join($ENVIRONMENT_NARWHAL_PRODUCT, 'packages') $EXTERNALS = ['browserjs', 'jack', 'narwhal', 'ojunit'] $PACKAGES = ['browserjs', 'jack'] def git_export(source, dest) dest = File.join(File.expand_path(dest), ''); system %{cd "#{source}" && git checkout-index -a -f "--prefix=#{dest}"} end file_d $ENVIRONMENT_DIR do mkdir_p $ENVIRONMENT_DIR end task :update_submodules do if !ENV['NOSUBUP'] then if executable_exists? "git" system %{cd .. && git submodule init && git submodule update} else puts "Git not installed" rake abort end end end task :build => [:update_submodules, $ENVIRONMENT_DIR] do rm_rf($ENVIRONMENT_NARWHAL_PRODUCT) git_export('narwhal', $ENVIRONMENT_NARWHAL_PRODUCT) $PACKAGES.each do |package| git_export(package, File.join($ENVIRONMENT_PACKAGES_PRODUCT, package)) end symlink_executable(File.join($ENVIRONMENT_PACKAGES_PRODUCT, 'jack', 'bin', 'jackup')) end CLOBBER.include($ENVIRONMENT_NARWHAL_PRODUCT) task :pull do $EXTERNALS.each do |external| system "cd #{external} && git pull origin master" end end