UNPKG

matterbridge-roborock-vacuum-plugin

Version:
105 lines 4.13 kB
import { AnsiLogger } from 'matterbridge/logger'; import { cmdCleanMode } from './commands/cleanMode.js'; import { cmdCustom } from './commands/custom.js'; import { cmdDevices } from './commands/devices.js'; import { cmdLogin } from './commands/login.js'; import { cmdMapInfo } from './commands/mapInfo.js'; import { cmdNetworkInfo } from './commands/networkInfo.js'; import { cmdPause } from './commands/pause.js'; import { cmdPing } from './commands/ping.js'; import { cmdResume } from './commands/resume.js'; import { cmdRooms } from './commands/rooms.js'; import { cmdScenes } from './commands/scenes.js'; import { cmdStart } from './commands/start.js'; import { cmdStatus } from './commands/status.js'; import { cmdStop } from './commands/stop.js'; import { HELP_TEXT } from './help.js'; import { loadSession } from './session.js'; import { parseArgs } from './utils.js'; export async function main() { const args = parseArgs(process.argv.slice(2)); const command = args['command']; const help = args['help'] === 'true'; if (!command || command === 'help' || help) { console.log(HELP_TEXT); process.exit(command || help ? 0 : 1); } const debug = args['debug'] === 'true'; const logger = AnsiLogger.create({ logName: 'CLI', logLevel: debug ? "debug" /* LogLevel.DEBUG */ : "warn" /* LogLevel.WARN */ }); try { if (command === 'login') { await cmdLogin(logger); return; } const session = loadSession(); if (!session) { console.error('No session found. Run: npm run cli -- --command login'); process.exit(1); } if (command === 'devices') { await cmdDevices(session, logger); return; } const duid = args['duid']; if (!duid) { console.error(`--duid is required for command: ${command}`); process.exit(1); } const local = args['local'] === 'true'; switch (command) { case 'status': await cmdStatus(duid, session, logger, local); break; case 'start': await cmdStart(duid, session, logger, local); break; case 'stop': await cmdStop(duid, session, logger, local); break; case 'pause': await cmdPause(duid, session, logger, local); break; case 'resume': await cmdResume(duid, session, logger, local); break; case 'ping': await cmdPing(duid, session, logger, local); break; case 'room-info': await cmdRooms(duid, session, logger, local); break; case 'map-info': await cmdMapInfo(duid, session, logger, local); break; case 'clean-mode': await cmdCleanMode(duid, session, logger, local); break; case 'network-info': await cmdNetworkInfo(duid, session, logger); break; case 'scenes': await cmdScenes(duid, session, logger, args['detail'] === 'true'); break; case 'custom': { const method = args['method']; if (!method) { console.error('--method is required for command: custom'); process.exit(1); } const rawParams = args['params']; const params = rawParams ? JSON.parse(rawParams) : undefined; const send = args['send'] === 'true'; await cmdCustom(duid, method, params, send, session, logger, local); break; } default: console.error(`Unknown command: ${command}\n\n${HELP_TEXT}`); process.exit(1); } } catch (err) { console.error('Error:', err instanceof Error ? err.message : String(err)); process.exit(1); } } //# sourceMappingURL=main.js.map