cli.js
942 Bytes
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
#!/usr/bin/env node
'use strict';
var fs = require('fs');
var stdin = require('get-stdin');
var argv = require('minimist')(process.argv.slice(2));
var pkg = require('./package.json');
var detectIndent = require('./');
var input = argv._[0];
function help() {
console.log([
'',
' ' + pkg.description,
'',
' Usage',
' detect-indent <file>',
' echo <string> | detect-indent',
'',
' Example',
' echo \' foo\\n bar\' | detect-indent | wc --chars',
' 2'
].join('\n'));
}
function init(data) {
var indent = detectIndent(data).indent;
if (indent !== null) {
process.stdout.write(indent);
} else {
console.error('Indentation could not be detected');
process.exit(2);
}
}
if (argv.help) {
help();
return;
}
if (argv.version) {
console.log(pkg.version);
return;
}
if (process.stdin.isTTY) {
if (!input) {
help();
return;
}
init(fs.readFileSync(input, 'utf8'));
} else {
stdin(init);
}