run.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/usr/bin/env node
  2. 'use strict';
  3. require('colorful').colorful();
  4. require('colorful').isatty = true;
  5. const gulp = require('gulp');
  6. const program = require('commander');
  7. program.on('--help', () => {
  8. console.log(' Usage:'.to.bold.blue.color);
  9. console.log();
  10. });
  11. program.parse(process.argv);
  12. function runTask(toRun) {
  13. const metadata = { task: toRun };
  14. // Gulp >= 4.0.0 (doesn't support events)
  15. const taskInstance = gulp.task(toRun);
  16. if (taskInstance === undefined) {
  17. gulp.emit('task_not_found', metadata);
  18. return;
  19. }
  20. const start = process.hrtime();
  21. gulp.emit('task_start', metadata);
  22. try {
  23. taskInstance.apply(gulp);
  24. metadata.hrDuration = process.hrtime(start);
  25. gulp.emit('task_stop', metadata);
  26. gulp.emit('stop');
  27. } catch (err) {
  28. err.hrDuration = process.hrtime(start);
  29. err.task = metadata.task;
  30. gulp.emit('task_err', err);
  31. }
  32. }
  33. const task = program.args[0];
  34. if (!task) {
  35. program.help();
  36. } else {
  37. console.log('scripts run', task);
  38. require('./gulpfile');
  39. runTask(task);
  40. }