UNPKG

@autocodingsystems/gateway-client

Version:

Library and commandline utility to control the acs gateway - device drivers for the most common industrial production line devices

51 lines (39 loc) 1.25 kB
#!/usr/bin/env node const path = require('path'); const fs = require('fs'); var argv = require('minimist')(process.argv.slice(2)); const conf = require('rc')(argv.appname || 'acs-gateway-client'); argv.command = argv.command || argv.c || argv._.shift(); const commands_available = fs.readdirSync(path.join(__dirname, 'lib', 'commands')).map(c => path.basename(c, '.js')); if (!argv.command) { usage(); return; } else { execute(argv.command, argv); } async function execute(command, argv) { var commandpath = path.join(__dirname, 'lib', 'commands', path.basename(command)); if (!commands_available.some(c => c === command)) { console.log('Unknown command: ' + command) usage(); return; } var commandfunction; try { commandfunction = require(commandpath); } catch (e) { console.log(e); usage(); return; } try { await commandfunction(argv, conf, {showhelp: false}); } catch (e) { console.log('Command failed', e); } } function usage() { console.log('Usage: gateway-client --command <command>'); console.log(' --command, -c <command>'); commands_available.map(c => ' ' + c).map(c => console.log(c)); }