#!/usr/bin/env narwhal var FILE = require("file"), ENV = require("system").env, OS = require("os"), Jake = require("jake"); /*, Clean = require("jake/clean"); */ require(FILE.absolute("../common.jake")); $ENVIRONMENT_NARWHAL_PRODUCT = $ENVIRONMENT_DIR $ENVIRONMENT_PACKAGES_PRODUCT = FILE.join($ENVIRONMENT_NARWHAL_PRODUCT, 'packages') $EXTERNALS = ['browserjs', 'jack', 'narwhal', 'ojunit']; $PACKAGES = ['browserjs', 'jack']; function git_export(source, destination) { destination = FILE.join(FILE.absolute(destination), ''); OS.system("cd " + source + " && git checkout-index -a -f \"--prefix=" + destination + "\""); }; filedir ($ENVIRONMENT_DIR, function() { FILE.mkdirs($ENVIRONMENT_DIR); }); task ("update_submodules", function() { if (ENV['NOSUBUP']) return; if (executableExists("git")) OS.system("cd .. && git submodule init && git submodule update"); else throw "Git not installed"; }); task ("build", ["update_submodules", $ENVIRONMENT_DIR], function() { rm_rf($ENVIRONMENT_NARWHAL_PRODUCT); git_export('narwhal', $ENVIRONMENT_NARWHAL_PRODUCT); $PACKAGES.forEach(function(aPackage) { git_export(aPackage, FILE.join($ENVIRONMENT_PACKAGES_PRODUCT, aPackage)); }); symlink_executable(FILE.join($ENVIRONMENT_PACKAGES_PRODUCT, 'jack', 'bin', 'jackup')) }); //CLOBBER.include($ENVIRONMENT_NARWHAL_PRODUCT) task ("pull", function() { $EXTERNALS.forEach(function(external) { OS.system("cd " + external + " && git pull origin master"); }); });