UNPKG

1.61 kBJavaScriptView Raw
1#!/usr/bin/env node
2
3'use strict';
4
5const chalk = require('chalk');
6const exit = require('exit');
7const program = require('commander');
8const utils = require('./utils');
9
10program
11 .version(require('../package.json').version)
12 .usage('[options] <file-or-url...>\n\n Restoring the letter “ё” (yo) in russian texts.')
13 .option('-l, --lint', 'Search of safe and unsafe replacements')
14 .option('--only-safe', 'Output only safe replacements')
15 .option('-s, --sort', 'Sort results')
16 .option('--no-colors', 'Clean output without colors')
17 .option('--stdin', 'Process text provided on <STDIN>')
18 .option('--stdin-filename <file>', 'Specify filename to process STDIN as')
19 .parse(process.argv);
20
21chalk.enabled = program.colors;
22
23if (!program.stdin && !program.args.length) {
24 program.help();
25}
26
27if (program.stdin) {
28 let text = '';
29
30 process.stdin
31 .setEncoding('utf8')
32 .on('readable', function() {
33 const chunk = process.stdin.read();
34 if (chunk !== null) {
35 text += chunk;
36 }
37 })
38 .on('end', function() {
39 utils._processText(text, program.stdinFilename || 'stdin');
40 exit(process.exitCode);
41 });
42} else {
43 Promise.all(program.args.map(resource => {
44 return new Promise(resolve => {
45 if (resource.search(/^https?:/) !== -1) {
46 utils._processUrl(resource, resolve);
47 } else {
48 utils._processFile(resource, resolve);
49 }
50 });
51 })).then(() => {
52 exit(process.exitCode);
53 });
54}