@twilio/plugin-microvisor
Version:
Interact with your Twilio Microvisor devices
56 lines (55 loc) • 2.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseCommand = void 0;
exports.BaseCommand = require('@twilio/cli-core').baseCommands.BaseCommand;
const serialport_1 = require("serialport");
const common_1 = require("../../../lib/provision/common");
const MAIN_ERROR = "Could not get serial ports";
const EOL = (process.platform == "linux" || process.platform == "darwin") ? "\n" : "\r\n";
class MicrovisorWiFiConfigPorts extends exports.BaseCommand {
async run() {
await super.run();
const passThis = this;
passThis.mainError = MAIN_ERROR;
// Check user perms on Linux
if (!(0, common_1.checkUserPermissions)()) {
this.logger.error(`${passThis.mainError}. Please re-run as root or as a member of dialout.${EOL}`);
process.exit(1);
}
this.logger.info("Available ports on your computer:");
serialport_1.SerialPort.list().then(function (ports) {
let platform = process.platform;
var portCount = 0;
ports.forEach(function (port) {
var doList = false;
switch (platform) {
case "darwin":
doList = !port.path.includes("Bluetooth") && !port.path.includes("BLTH");
break;
case "linux":
doList = !port.path.startsWith("/dev/ttyS");
break;
default:
doList = true;
}
if (doList) {
portCount += 1;
passThis.logger.info(`${portCount}. ${port.path}`);
}
});
if (portCount == 0)
passThis.logger.info("No ports available.");
}, function (err) {
passThis.logger.error(`${passThis.mainError} (${err.message}).${EOL}`);
});
}
async runCommand() {
return run();
}
}
exports.default = MicrovisorWiFiConfigPorts;
MicrovisorWiFiConfigPorts.description = "List possible connected Microvisor devices' Unix paths";
// Remove some unnecessary options
delete MicrovisorWiFiConfigPorts.flags['cli-output-format'];
delete MicrovisorWiFiConfigPorts.flags.silent;
delete MicrovisorWiFiConfigPorts.flags.profile;