@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
JavaScript
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));
}