forked from bionode/bionode-ncbi
/
cli.js
executable file
·56 lines (45 loc) · 1.03 KB
/
cli.js
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
var minimist = require('minimist')
var JSONStream = require('JSONStream')
var ncbi = require('./')
var minimistOptions = {
alias: {
limit: 'l',
throughput: 't'
}
}
var argv = minimist(process.argv.slice(2), minimistOptions)
var command = argv._[0]
var arg1 = argv._[1]
var lastArg = argv._[argv._.length - 1]
var wantsStdin = false
if (lastArg === '-') {
wantsStdin = true
argv._.pop()
}
if (command === 'link') {
var arg2 = argv._[2]
var arg3 = argv._[3]
}
else {
var arg2 = argv._.slice(2).join(' ')
var arg3 = null
}
var options
if (Object.keys(argv).length > 1) {
options = {
limit: argv.limit,
throughput: argv.throughput,
db: arg1,
term: arg2
}
}
var ncbiStream = options ? ncbi[command](options) : ncbi[command](arg1, arg2, arg3)
ncbiStream.pipe(JSONStream.stringify(false)).pipe(process.stdout)
if (wantsStdin) {
process.stdin.setEncoding('utf8');
process.stdin.on('data', function(data) {
if (data.trim() === '') { return }
ncbiStream.write(data.trim())
})
}