You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
2.3 KiB
94 lines
2.3 KiB
let fs = require('fs') |
|
let path = require('path'); |
|
let proc = require('child_process'); |
|
|
|
const PROJECT_DIR = process.cwd(); |
|
process.env.PROJECT_DIR = PROJECT_DIR; |
|
|
|
namespace('doc', function () { |
|
task('generate', ['doc:clobber'], function () { |
|
var cmd = '../node-jsdoc-toolkit/app/run.js -n -r=100 ' + |
|
'-t=../node-jsdoc-toolkit/templates/codeview -d=./doc/ ./lib'; |
|
jake.logger.log('Generating docs ...'); |
|
jake.exec([cmd], function () { |
|
jake.logger.log('Done.'); |
|
complete(); |
|
}); |
|
}, {async: true}); |
|
|
|
task('clobber', function () { |
|
var cmd = 'rm -fr ./doc/*'; |
|
jake.exec([cmd], function () { |
|
jake.logger.log('Clobbered old docs.'); |
|
complete(); |
|
}); |
|
}, {async: true}); |
|
|
|
}); |
|
|
|
desc('Generate docs for Jake'); |
|
task('doc', ['doc:generate']); |
|
|
|
npmPublishTask('jake', function () { |
|
this.packageFiles.include([ |
|
'Makefile', |
|
'jakefile.js', |
|
'README.md', |
|
'package.json', |
|
'usage.txt', |
|
'lib/**', |
|
'bin/**', |
|
'test/**' |
|
]); |
|
this.packageFiles.exclude([ |
|
'test/tmp' |
|
]); |
|
}); |
|
|
|
jake.Task['publish:package'].directory = PROJECT_DIR; |
|
|
|
namespace('test', function () { |
|
|
|
let integrationTest = task('integration', async function () { |
|
let testArgs = []; |
|
if (process.env.filter) { |
|
testArgs.push(process.env.filter); |
|
} |
|
else { |
|
testArgs.push('*.js'); |
|
} |
|
let spawned = proc.spawn(`${PROJECT_DIR}/node_modules/.bin/mocha`, testArgs, { |
|
stdio: 'inherit' |
|
}); |
|
return new Promise((resolve, reject) => { |
|
spawned.on('exit', () => { |
|
resolve(); |
|
}); |
|
}); |
|
|
|
}); |
|
integrationTest.directory = `${PROJECT_DIR}/test/integration`; |
|
|
|
let integrationClobber = task('integrationClobber', function () { |
|
proc.execSync('rm -rf package.json pkg tmp_publish'); |
|
}); |
|
integrationClobber.directory = `${PROJECT_DIR}/test/integration`; |
|
|
|
let unitTest = task('unit', async function () { |
|
let testArgs = []; |
|
if (process.env.filter) { |
|
testArgs.push(process.env.filter); |
|
} |
|
else { |
|
testArgs.push('*.js'); |
|
} |
|
let spawned = proc.spawn(`${PROJECT_DIR}/node_modules/.bin/mocha`, testArgs, { |
|
stdio: 'inherit' |
|
}); |
|
}); |
|
unitTest.directory = `${PROJECT_DIR}/test/unit`; |
|
|
|
}); |
|
|
|
desc('Runs all tests'); |
|
task('test', ['test:unit', 'test:integration', 'test:integrationClobber']);
|
|
|