88 lines
2.2 KiB
Plaintext
88 lines
2.2 KiB
Plaintext
|
var fs = require('fs')
|
||
|
, path = require('path');
|
||
|
|
||
|
namespace('test', function () {
|
||
|
|
||
|
desc('Sets up tests by downloading the timezone data.');
|
||
|
task('init', ['updateTzData'], function () {
|
||
|
complete();
|
||
|
}, {async: true});
|
||
|
|
||
|
task('clobberTzData', function () {
|
||
|
console.log('Removing old timezone data.');
|
||
|
jake.rmRf('lib/tz');
|
||
|
});
|
||
|
|
||
|
desc('Downloads the newest timezone data.');
|
||
|
task('updateTzData', ['clobberTzData'], function () {
|
||
|
var cmds = [
|
||
|
'echo "Downloading new timezone data ..."'
|
||
|
, 'curl ftp://ftp.iana.org/tz/tzdata-latest.tar.gz ' +
|
||
|
'-o lib/tz/tzdata-latest.tar.gz'
|
||
|
, 'echo "Expanding archive ..."'
|
||
|
, 'tar -xvzf lib/tz/tzdata-latest.tar.gz -C lib/tz'
|
||
|
];
|
||
|
jake.mkdirP('lib/tz');
|
||
|
jake.exec(cmds, function () {
|
||
|
console.log('Retrieved new timezone data');
|
||
|
console.log('Parsing tz...');
|
||
|
jake.exec('node src/node-preparse.js lib/tz > lib/all_cities.json', function () {
|
||
|
console.log('Done parsing tz');
|
||
|
complete();
|
||
|
}, {printStdout: true, printStderr: true});
|
||
|
}, {printStdout: true});
|
||
|
}, {async: true});
|
||
|
|
||
|
task('run', function () {
|
||
|
//Comply to 0.8.0 and 0.6.x
|
||
|
var existsSync = fs.existsSync || path.existsSync;
|
||
|
if (!existsSync('lib/tz')) {
|
||
|
fail('No timezone data. Please run "jake test:init".');
|
||
|
}
|
||
|
jake.exec(['jasmine-node spec'], function () {
|
||
|
complete();
|
||
|
}, {printStdout: true});
|
||
|
|
||
|
}, {async: true});
|
||
|
|
||
|
task('cli', ['init', 'run']);
|
||
|
|
||
|
});
|
||
|
|
||
|
desc('Runs the tests.');
|
||
|
task('test', ['test:run'], function () {});
|
||
|
|
||
|
namespace('doc', function () {
|
||
|
task('generate', ['doc:clobber'], function () {
|
||
|
var cmd = 'docco src/date.js';
|
||
|
console.log('Generating docs ...');
|
||
|
jake.exec([cmd], function () {
|
||
|
console.log('Done.');
|
||
|
complete();
|
||
|
});
|
||
|
}, {async: true});
|
||
|
|
||
|
task('clobber', function () {
|
||
|
var cmd = 'rm -fr ./docs';
|
||
|
jake.exec([cmd], function () {
|
||
|
console.log('Clobbered old docs.');
|
||
|
complete();
|
||
|
});
|
||
|
}, {async: true});
|
||
|
|
||
|
});
|
||
|
|
||
|
desc('Generates docs.');
|
||
|
task('doc', ['doc:generate']);
|
||
|
|
||
|
var p = new jake.NpmPublishTask('timezone-js', [
|
||
|
'Jakefile'
|
||
|
, 'README.md'
|
||
|
, 'package.json'
|
||
|
, 'spec/*'
|
||
|
, 'src/*'
|
||
|
]);
|
||
|
|
||
|
jake.Task['npm:definePackage'].invoke();
|
||
|
|