46 lines
1.2 KiB
JavaScript
Executable File
46 lines
1.2 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
/* eslint-disable no-undef */
|
|
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
|
|
const eol = require('os').EOL
|
|
async function main() {
|
|
const util = require('./lib/cjs/util.js')
|
|
await util.initEsm()
|
|
const color = util.color,
|
|
options = require('./lib/cjs/options.js'),
|
|
nexe = require('./lib/cjs/nexe.js'),
|
|
NexeError = require('./lib/cjs/compiler.js').NexeError,
|
|
del = eol + eol,
|
|
argv = options.argv,
|
|
showHelp = argv.help || argv._.some((x) => x === 'help'),
|
|
showVersion = argv.version || argv._.some((x) => x === 'version')
|
|
|
|
try {
|
|
if (!(showHelp || showVersion)) {
|
|
await nexe.compile(argv)
|
|
} else {
|
|
process.stderr.write(showHelp ? options.help() : options.version + eol)
|
|
}
|
|
} catch (error) {
|
|
if (argv.loglevel !== 'silent') {
|
|
if (error instanceof NexeError) {
|
|
process.stderr.write(
|
|
`${eol}${color('red', 'Error: ')}${error.message}${del}See nexe -h for usage..${del}`
|
|
)
|
|
} else {
|
|
process.stderr.write(error.stack + eol)
|
|
}
|
|
}
|
|
process.exit(1)
|
|
}
|
|
process.exit(0)
|
|
}
|
|
|
|
if (require.main === module) {
|
|
main()
|
|
} else {
|
|
process.stderr.write('Cannot require(..) the nexe cli')
|
|
process.exit(1)
|
|
}
|