init.js 968 B

123456789101112131415161718192021222324252627282930313233343536
  1. 'use strict';
  2. /**
  3. * Command module for "init" command
  4. *
  5. * @private
  6. * @module
  7. */
  8. const fs = require('node:fs');
  9. const path = require('node:path');
  10. exports.command = 'init <path>';
  11. exports.description = 'create a client-side Mocha setup at <path>';
  12. exports.builder = yargs =>
  13. yargs.positional('path', {
  14. type: 'string',
  15. normalize: true
  16. });
  17. exports.handler = argv => {
  18. const destdir = argv.path;
  19. const srcdir = path.join(__dirname, '..', '..');
  20. fs.mkdirSync(destdir, {recursive: true});
  21. const css = fs.readFileSync(path.join(srcdir, 'mocha.css'));
  22. const js = fs.readFileSync(path.join(srcdir, 'mocha.js'));
  23. const tmpl = fs.readFileSync(
  24. path.join(srcdir, 'lib', 'browser', 'template.html')
  25. );
  26. fs.writeFileSync(path.join(destdir, 'mocha.css'), css);
  27. fs.writeFileSync(path.join(destdir, 'mocha.js'), js);
  28. fs.writeFileSync(path.join(destdir, 'tests.spec.js'), '');
  29. fs.writeFileSync(path.join(destdir, 'index.html'), tmpl);
  30. };