mirror of
https://github.com/public-transport/db-vendo-client.git
synced 2025-02-23 07:09:35 +02:00
debug CLI: parse args properly
This commit is contained in:
parent
036d0cdca8
commit
c6de12a707
2 changed files with 34 additions and 4 deletions
|
@ -3,7 +3,6 @@
|
|||
|
||||
const mri = require('mri')
|
||||
const {join} = require('path')
|
||||
const {to: fromCli} = require('cli-native')
|
||||
const createClient = require('..')
|
||||
|
||||
const showError = (err) => {
|
||||
|
@ -11,13 +10,45 @@ const showError = (err) => {
|
|||
process.exit(1)
|
||||
}
|
||||
|
||||
const toString = val => val + ''
|
||||
const parseJSON = val => JSON.parse(val)
|
||||
const parseArgs = [
|
||||
['departures', 0, toString],
|
||||
['departures', 1, parseJSON],
|
||||
['arrivals', 0, toString],
|
||||
['arrivals', 1, parseJSON],
|
||||
['journeys', 0, toString],
|
||||
['journeys', 1, toString],
|
||||
['journeys', 2, parseJSON],
|
||||
['refreshJourney', 0, toString],
|
||||
['refreshJourney', 1, parseJSON],
|
||||
['locations', 0, toString],
|
||||
['locations', 1, parseJSON],
|
||||
['stop', 0, toString],
|
||||
['stop', 1, parseJSON],
|
||||
['nearby', 0, parseJSON],
|
||||
['nearby', 1, parseJSON],
|
||||
['trip', 0, toString],
|
||||
['trip', 1, toString],
|
||||
['trip', 2, parseJSON],
|
||||
['radar', 0, parseJSON],
|
||||
['radar', 1, parseJSON],
|
||||
['reachableFrom', 0, parseJSON],
|
||||
['reachableFrom', 1, parseJSON]
|
||||
]
|
||||
|
||||
const argv = mri(process.argv.slice(2))
|
||||
|
||||
const profile = require(join('../p', argv._[0]))
|
||||
const client = createClient(profile, 'hafas-client debug CLI')
|
||||
|
||||
const fn = client[argv._[1]]
|
||||
const args = argv._.slice(2).map(arg => fromCli(arg))
|
||||
const fnName = argv._[1]
|
||||
const fn = client[fnName]
|
||||
|
||||
const args = argv._.slice(2).map((arg, i) => {
|
||||
const parser = parseArgs.find(([_fnName, _i]) => _fnName === fnName && _i === i)
|
||||
return parser ? parser[2](arg) : arg
|
||||
})
|
||||
|
||||
fn(...args)
|
||||
.then((res) => {
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
"author": "Jannis R <mail@jannisr.de>",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"cli-native": "^1.0.0",
|
||||
"mri": "^1.1.4"
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue