diff options
author | Minteck <minteck@phoenixnet.tech> | 2021-10-17 20:08:04 +0200 |
---|---|---|
committer | Minteck <minteck@phoenixnet.tech> | 2021-10-17 20:08:04 +0200 |
commit | 3a94acf27ea1eff8bd1125450f07c0c366332e80 (patch) | |
tree | 5bd619df0b7e04afc174df98736a527477522acb /node_modules/jake/jakefile.js | |
download | rainbow-3a94acf27ea1eff8bd1125450f07c0c366332e80.tar.gz rainbow-3a94acf27ea1eff8bd1125450f07c0c366332e80.tar.bz2 rainbow-3a94acf27ea1eff8bd1125450f07c0c366332e80.zip |
Initial commit
Diffstat (limited to 'node_modules/jake/jakefile.js')
-rw-r--r-- | node_modules/jake/jakefile.js | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/node_modules/jake/jakefile.js b/node_modules/jake/jakefile.js new file mode 100644 index 0000000..b0ae79b --- /dev/null +++ b/node_modules/jake/jakefile.js @@ -0,0 +1,105 @@ +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', ['publish:package'], async function () { + let pkg = JSON.parse(fs.readFileSync(`${PROJECT_DIR}/package.json`).toString()); + let version = pkg.version; + + proc.execSync('rm -rf ./node_modules'); + // Install from the actual package, run tests from the packaged binary + proc.execSync(`mkdir -p node_modules/.bin && mv ${PROJECT_DIR}/pkg/jake-v` + + `${version} node_modules/jake && ln -s ${process.cwd()}` + + '/node_modules/jake/bin/cli.js ./node_modules/.bin/jake'); + + 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', () => { + if (!(process.env.noclobber || process.env.noClobber)) { + proc.execSync('rm -rf tmp_publish && rm -rf package.json' + + ' && rm -rf package-lock.json && rm -rf node_modules'); + // Rather than invoking 'clobber' task + jake.rmRf(`${PROJECT_DIR}/pkg`); + } + resolve(); + }); + }); + + }); + + integrationTest.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']); |