-
Notifications
You must be signed in to change notification settings - Fork 54
Expand file tree
/
Copy pathcli.js
More file actions
117 lines (86 loc) · 3.78 KB
/
cli.js
File metadata and controls
117 lines (86 loc) · 3.78 KB
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
'use strict';
var _commander = require('commander');
var _commander2 = _interopRequireDefault(_commander);
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _cliInteractive = require('./cli-interactive');
var _cliInteractive2 = _interopRequireDefault(_cliInteractive);
var _index = require('./index');
var _index2 = _interopRequireDefault(_index);
var _chalk = require('chalk');
var _chalk2 = _interopRequireDefault(_chalk);
var _multiFileProcessor = require('./multi-file-processor');
var _multiFileProcessor2 = _interopRequireDefault(_multiFileProcessor);
var _relativeFileProcessor = require('./relative-file-processor');
var _relativeFileProcessor2 = _interopRequireDefault(_relativeFileProcessor);
var _spellcheck = require('./spellcheck');
var _spellcheck2 = _interopRequireDefault(_spellcheck);
var _reportGenerator = require('./report-generator');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var packageConfig = _fs2.default.readFileSync(_path2.default.join(__dirname, '../package.json'));
var buildVersion = JSON.parse(packageConfig).version;
_commander2.default.version(buildVersion)
// default cli behaviour will be an interactive walkthrough each error, with suggestions,
// options to replace etc.
.option('-r, --report', 'Outputs a full report which details the unique spelling errors found')
.option('-n, --ignore-numbers', 'Ignores numbers')
.option('--en-us', 'American English dictionary')
.option('--en-gb', 'British English dictionary')
.option('--en-au', 'Australian English dictionary')
.option('--es-es', 'Spanish dictionary')
.option('-d, --dictionary [file]', 'Specify a custom dictionary file - it should not include the file extension and will load .dic and .aiff')
.option('-a, --ignore-acronyms', 'Ignores acronyms')
.option('-x, --no-suggestions', 'Do not suggest words (can be slow)')
.option('-t, --target-relative', 'Uses ".spelling" files relative to the target')
.option('-z, --no-colour','No colour output in report')
.usage("[options] source-file source-file").parse(process.argv)
;
var language = void 0;
if (_commander2.default.enUs) {
language = "en-us";
} else if (_commander2.default.enGb) {
language = "en-gb";
} else if (_commander2.default.enAu) {
language = "en-au";
} else if (_commander2.default.esEs) {
language = "es-es";
}
var options = {
ignoreAcronyms: _commander2.default.ignoreAcronyms,
ignoreNumbers: _commander2.default.ignoreNumbers,
suggestions: _commander2.default.suggestions,
relativeSpellingFiles: _commander2.default.targetRelative,
colour: _commander2.default.colour,
dictionary: {
language: language,
file: _commander2.default.dictionary
}
};
if (!_commander2.default.args.length) {
_commander2.default.outputHelp();
process.exit();
} else {
if ( ! options.colour ) {
_chalk2.default.enabled = false;
}
_spellcheck2.default.initialise(options);
var inputPatterns = _commander2.default.args;
var processor = options.relativeSpellingFiles ? _relativeFileProcessor2.default : _multiFileProcessor2.default;
processor(inputPatterns, options, function (filename, src, fileProcessed) {
if (_commander2.default.report) {
var errors = _index2.default.spell(src, options);
if (errors.length > 0) {
console.log((0, _reportGenerator.generateFileReport)(filename, { errors: errors, src: src }, options));
process.exitCode = 1;
}
fileProcessed(null, errors);
} else {
console.log("Spelling - " + _chalk2.default.bold(filename));
(0, _cliInteractive2.default)(filename, src, options, fileProcessed);
}
}, function (e, results) {
console.log((0, _reportGenerator.generateSummaryReport)(results));
});
}