1 | 'use strict';
|
2 |
|
3 | var path = require('path');
|
4 | var utils = module.exports = require('lazy-cache')(require);
|
5 | var fn = require;
|
6 | require = utils;
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 | require('base-questions', 'questions');
|
13 | require('cross-spawn', 'spawn');
|
14 | require('fs-exists-sync', 'exists');
|
15 | require('global-modules', 'gm');
|
16 | require('is-valid-app', 'isValid');
|
17 | require('log-utils', 'log');
|
18 | require('yargs-parser', 'parse');
|
19 | require('parser-front-matter', 'matter');
|
20 | require('resolve-dir');
|
21 | require = fn;
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 | utils.colors = utils.log.colors;
|
28 |
|
29 |
|
30 |
|
31 |
|
32 |
|
33 | utils.opts = {
|
34 | alias: {
|
35 | add: 'a',
|
36 | config: 'c',
|
37 | configfile: 'f',
|
38 | global: 'g',
|
39 | help: 'h',
|
40 | init: 'i',
|
41 | silent: 'S',
|
42 | verbose: 'v',
|
43 | version: 'V',
|
44 | remove: 'r'
|
45 | }
|
46 | };
|
47 |
|
48 |
|
49 |
|
50 |
|
51 |
|
52 | utils.parseArgs = function(argv) {
|
53 | var obj = utils.parse(argv, utils.opts);
|
54 | if (obj.init) {
|
55 | obj._.push('init');
|
56 | delete obj.init;
|
57 | }
|
58 | if (obj.help) {
|
59 | obj._.push('help');
|
60 | delete obj.help;
|
61 | }
|
62 | return obj;
|
63 | };
|
64 |
|
65 |
|
66 |
|
67 |
|
68 |
|
69 | utils.arrayify = function(val) {
|
70 | return [].concat(val || []);
|
71 | };
|
72 |
|
73 |
|
74 |
|
75 |
|
76 |
|
77 | utils.extRegex = function(exts) {
|
78 | return new RegExp('\\.(' + utils.arrayify(exts).join('|') + ')$');
|
79 | };
|
80 |
|
81 |
|
82 |
|
83 |
|
84 |
|
85 | utils.homeRelative = function(fp) {
|
86 | var dir = path.resolve(utils.resolveDir(fp));
|
87 | var home = path.resolve(utils.resolveDir('~/'));
|
88 | fp = path.relative(home, dir);
|
89 | if (fp.charAt(0) === '/') {
|
90 | fp = fp.slice(1);
|
91 | }
|
92 | return fp;
|
93 | };
|
94 |
|
95 |
|
96 |
|
97 |
|
98 |
|
99 | utils.formatDir = function(cwd) {
|
100 | return utils.colors.yellow('~/' + utils.homeRelative(cwd));
|
101 | };
|