mirror of
https://github.com/public-transport/db-vendo-client.git
synced 2025-02-23 23:29: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 mri = require('mri')
|
||||||
const {join} = require('path')
|
const {join} = require('path')
|
||||||
const {to: fromCli} = require('cli-native')
|
|
||||||
const createClient = require('..')
|
const createClient = require('..')
|
||||||
|
|
||||||
const showError = (err) => {
|
const showError = (err) => {
|
||||||
|
@ -11,13 +10,45 @@ const showError = (err) => {
|
||||||
process.exit(1)
|
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 argv = mri(process.argv.slice(2))
|
||||||
|
|
||||||
const profile = require(join('../p', argv._[0]))
|
const profile = require(join('../p', argv._[0]))
|
||||||
const client = createClient(profile, 'hafas-client debug CLI')
|
const client = createClient(profile, 'hafas-client debug CLI')
|
||||||
|
|
||||||
const fn = client[argv._[1]]
|
const fnName = argv._[1]
|
||||||
const args = argv._.slice(2).map(arg => fromCli(arg))
|
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)
|
fn(...args)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
"author": "Jannis R <mail@jannisr.de>",
|
"author": "Jannis R <mail@jannisr.de>",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"cli-native": "^1.0.0",
|
|
||||||
"mri": "^1.1.4"
|
"mri": "^1.1.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue