-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
cli.ts
58 lines (48 loc) · 1.18 KB
/
cli.ts
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
#!/usr/bin/env node
import { createReadStream, createWriteStream } from 'fs';
import { onebanner, multibanner } from './';
export function run() {
let args = process.argv.slice(2)
let help = false;
let multi = false;
let one = false;
args = args.filter((arg) => {
if (arg === '-h' || arg === '--help') {
help = true
return false
} else if (arg === '-m' || arg === '--multi') {
multi = true
return false
} else if (arg === '-o' || arg === '--one') {
one = true
return false
}
return true
});
if (help) {
const helpStr = `
Usage: bannerjs
Pipe Usage: bannerjs
-m --multi Output multi-line results
-o --one Output one-line results
`;
console.log(helpStr);
return;
}
let bannerStr = '';
if (multi) {
bannerStr = multibanner();
} else {
bannerStr = onebanner();
}
let dest = args[2] ? createWriteStream(args[2]) : process.stdout;
let source = args[1] ? createReadStream(args[1]) : process.stdin;
dest.write(`${bannerStr}\n`);
source.on('end', () => {
dest.write('\n');
})
.on('error', (err) => {
console.log('ERR:', err)
})
.pipe(dest, { end: true });
}