Tidying up
This commit is contained in:
parent
b9d1206dce
commit
2795041ba3
|
@ -1,6 +1,7 @@
|
||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
const { resolve } = require('path')
|
const { resolve } = require('path')
|
||||||
|
const { exec, spawn } = require('child_process')
|
||||||
|
|
||||||
const switches = { json: false }, switchReg = /^=/
|
const switches = { json: false }, switchReg = /^=/
|
||||||
let params = process.argv.slice(2)
|
let params = process.argv.slice(2)
|
||||||
params = params.map( p=> switchReg.test(p) ? (switches[p.slice(1)] = true, null) : p )
|
params = params.map( p=> switchReg.test(p) ? (switches[p.slice(1)] = true, null) : p )
|
||||||
|
@ -11,14 +12,14 @@ const [ esmodule, exported ] = (moduleStr || '').split(':')
|
||||||
|
|
||||||
const optionReg = /^-{1,2}(.*?)([:=](.*?))?$/
|
const optionReg = /^-{1,2}(.*?)([:=](.*?))?$/
|
||||||
const args = params.filter( s=> optionReg.test(s) )
|
const args = params.filter( s=> optionReg.test(s) )
|
||||||
.reduce( (opt,str)=> {
|
.reduce( (opt,str)=> {
|
||||||
let [ , prop, , value ] = optionReg.exec(str)
|
let [ , prop, , value ] = optionReg.exec(str)
|
||||||
return Object.assign( opt, {[prop]: value || true} )
|
return Object.assign( opt, {[prop]: value || true} )
|
||||||
// return hasValue ? { ...opt, [prop]: value || true }
|
// return hasValue ? { ...opt, [prop]: value || true }
|
||||||
// : opt
|
// : opt
|
||||||
},
|
},
|
||||||
params.filter( s=> !optionReg.test(s) )
|
params.filter( s=> !optionReg.test(s) )
|
||||||
)
|
)
|
||||||
|
|
||||||
const package = resolve('./package.json')
|
const package = resolve('./package.json')
|
||||||
, modulo = resolve(esmodule)
|
, modulo = resolve(esmodule)
|
||||||
|
@ -26,23 +27,28 @@ const package = resolve('./package.json')
|
||||||
//console.log( process.cwd(), package, modulo )
|
//console.log( process.cwd(), package, modulo )
|
||||||
//console.log( process.argv, esmodule, exported, args )
|
//console.log( process.argv, esmodule, exported, args )
|
||||||
|
|
||||||
let mod =
|
require = require('esm')( module, {await: true} )
|
||||||
require('esm')( module, {await: true} )
|
|
||||||
( modulo || require(package).module )
|
|
||||||
|
|
||||||
let toCall = mod[ exported || 'default' ]
|
|
||||||
let returned =
|
|
||||||
typeof toCall == 'function'
|
|
||||||
? toCall( args )
|
|
||||||
: toCall
|
|
||||||
|
|
||||||
const render = obj=> switches.json
|
const render = obj=> switches.json
|
||||||
? process.stdout.write( obj&& JSON.stringify(obj,null,'\t') || '' )
|
? process.stdout.write( obj&& JSON.stringify(obj,null,'\t') || '' )
|
||||||
: console.log( obj || '' )
|
: console.log( obj || '' )
|
||||||
|
|
||||||
|
|
||||||
|
let mod = require( modulo || require(package).module )
|
||||||
|
// console.log(mod)
|
||||||
|
|
||||||
|
let toCall = mod[ exported || 'default' ]
|
||||||
|
// console.log(mod, exported, toCall)
|
||||||
|
let returned =
|
||||||
|
typeof toCall == 'function'
|
||||||
|
? toCall( args )
|
||||||
|
: toCall
|
||||||
|
|
||||||
//console.log( 'type' , typeof returned, returned instanceof Promise )
|
//console.log( 'type' , typeof returned, returned instanceof Promise )
|
||||||
returned instanceof Promise
|
returned instanceof Promise
|
||||||
? returned.then( render, e=>console.error(e) )
|
? returned.then( render, e=>console.error(e) )
|
||||||
: render( returned )
|
: render(returned)
|
||||||
|
|
||||||
module.exports = mod
|
module.exports = mod
|
||||||
|
|
Loading…
Reference in New Issue