init.js 972 Bytes
Newer Older
YazhouChen's avatar
YazhouChen committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
'use strict';

/**
 * Command module for "init" command
 *
 * @private
 * @module
 */

const fs = require('fs');
const path = require('path');
const mkdirp = require('mkdirp');

exports.command = 'init <path>';

exports.description = 'create a client-side Mocha setup at <path>';

exports.builder = yargs =>
  yargs.positional('path', {
    type: 'string',
    normalize: true
  });

exports.handler = argv => {
  const destdir = argv.path;
  const srcdir = path.join(__dirname, '..', '..');
  mkdirp.sync(destdir);
  const css = fs.readFileSync(path.join(srcdir, 'mocha.css'));
  const js = fs.readFileSync(path.join(srcdir, 'mocha.js'));
  const tmpl = fs.readFileSync(
    path.join(srcdir, 'lib', 'browser', 'template.html')
  );
  fs.writeFileSync(path.join(destdir, 'mocha.css'), css);
  fs.writeFileSync(path.join(destdir, 'mocha.js'), js);
  fs.writeFileSync(path.join(destdir, 'tests.spec.js'), '');
  fs.writeFileSync(path.join(destdir, 'index.html'), tmpl);
};