1 | #!/usr/bin/env node
|
2 | 'use strict';
|
3 |
|
4 | function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
5 |
|
6 | var fs = _interopDefault(require('fs'));
|
7 | var path = _interopDefault(require('path'));
|
8 | var chalk = _interopDefault(require('chalk'));
|
9 | var mri = _interopDefault(require('mri'));
|
10 | var degit = _interopDefault(require('./index.js'));
|
11 |
|
12 | const args = mri(process.argv.slice(2), {
|
13 | alias: {
|
14 | f: 'force',
|
15 | c: 'cache',
|
16 | v: 'verbose'
|
17 | },
|
18 | boolean: ['force', 'cache', 'verbose']
|
19 | });
|
20 |
|
21 | const [src, dest = '.'] = args._;
|
22 |
|
23 | if (args.help || !src) {
|
24 | const help = fs.readFileSync(path.join(__dirname, 'help.md'), 'utf-8')
|
25 | .replace(/^(\s*)#+ (.+)/gm, (m, s, _) => s + chalk.bold(_))
|
26 | .replace(/_([^_]+)_/g, (m, _) => chalk.underline(_))
|
27 | .replace(/`([^`]+)`/g, (m, _) => chalk.cyan(_));
|
28 |
|
29 | process.stdout.write(`\n${help}\n`);
|
30 | } else {
|
31 | const d = degit(src, args);
|
32 |
|
33 | d.on('info', event => {
|
34 | console.error(chalk.cyan(`> ${event.message.replace('options.', '--')}`));
|
35 | });
|
36 |
|
37 | d.clone(dest)
|
38 |
|
39 |
|
40 |
|
41 | .catch(err => {
|
42 | console.error(chalk.red(`! ${err.message}`));
|
43 | process.exit(1);
|
44 | });
|
45 | }
|
46 |
|