@autocodingsystems/gateway-client
Version:
Library and commandline utility to control the acs gateway - device drivers for the most common industrial production line devices
43 lines (33 loc) • 1.3 kB
JavaScript
var api = require('../api');
var globToRegExp = require('glob-to-regexp');
async function activate_command(argv, conf, options) {
var target = require('../parameters/target')(argv);
var name = require('../parameters/name')(argv);
var raw = require('../parameters/raw')(argv);
if (!target.value || !name.value) {
usage();
return;
}
var filter = globToRegExp(name.value, {extended: true});
try {
var devices = await api(target.value).raw.getDevices();
devices = devices.filter(d => filter.test(d.Name));
var activateResults = await Promise.all(devices.map(async device => Object.assign({}, device, await api(target.value).raw.setActive(device.Id, true))));
activateResults.forEach(result => {
if (raw.value) {
console.log(JSON.stringify(result));
} else {
console.log(`Activated ${result.Id}: ${result.Name}`);
}
});
} catch (e) {
throw e;
}
function usage() {
console.log('activate: start the drivers for the given devices: ');
console.log(' ' + target.description);
console.log(' ' + name.description);
console.log(' ' + raw.description);
}
}
module.exports = activate_command;