UNPKG

@twilio/plugin-microvisor

Version:

Interact with your Twilio Microvisor devices

56 lines (55 loc) 2.33 kB
"use strict"; 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;