Files
cappuccino/External/Jakefile
T
2009-09-23 03:49:08 -07:00

64 lines
1.5 KiB
JavaScript

#!/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");
});
});