UNPKG

beelzebub

Version:
83 lines (71 loc) 2.07 kB
'use strict'; // !-- FOR TESTS let wrapper = function (options) { // --! // ===================================================== // <EXAMPLE> let Beelzebub = require('../../'); let bz = Beelzebub(options || { verbose: true }); const gulp = require('gulp'); const del = require('del'); const shell = require('shelljs'); class MyTasks extends Beelzebub.Tasks { constructor (config) { super(config); this.$setName('MyTasks'); this._src = './static-files/src'; this._dest = './static-files/dest'; } CopyFile () { this.logger.log('MyTasks - Coping Files'); return gulp.src(this._src + '/*', {base: this._src}) .pipe(gulp.dest(this._dest)); } NumberOfDestFiles () { return new Promise((resolve, reject) => { shell.exec( `cd ${this._dest}; ls -d -- * | wc -l`, { silent: true, async: true }, (code, stdout, stderr) => { if (stderr) { return reject(stderr); } let count = parseInt(stdout); this.logger.log(`MyTasks - Number of Dest Files: ${count}`); resolve(); } ); }); } DeleteFiles () { this.logger.log('MyTasks - Delete Files'); return del(this._dest + '/*.txt'); } } bz.add(MyTasks); let p = bz.run( 'MyTasks.NumberOfDestFiles', 'MyTasks.CopyFile', 'MyTasks.NumberOfDestFiles', 'MyTasks.DeleteFiles', 'MyTasks.NumberOfDestFiles' ); /* Output: MyTasks - Number of Dest Files: 1 MyTasks - Coping Files MyTasks - Number of Dest Files: 3 MyTasks - Delete Files MyTasks - Number of Dest Files: 1 */ // </EXAMPLE> // ===================================================== // !-- FOR TESTS return p.then(() => { return bz; }); }; module.exports = wrapper; // if not running in test, then run wrapper if (typeof global.it !== 'function') wrapper(); // --!