import { SSHServer, SSHValue } from './ssh.ts'; export class SSHManager { servers: SSHServer[] = []; constructor() {} addServer(server: SSHServer) { this.servers.push(server); } getServers() { return this.servers.map((server) => { return { name: server.name, isRunning: server.isRunning, values: server.values, }; }); } createServer(remote: string, values: SSHValue[]) { if (!remote) { console.error('remote 不能为空'); return; } const has = this.servers.find((server) => server.name === remote); let flag = false; if (has && has.isRunning) { flag = true; has.stop(); } const server = new SSHServer({ name: remote, values }); if (flag) { setTimeout(() => { server.start(); // 重新启动 }, 1000); } else { server.start(); } this.addServer(server); return server; } stopServer(remote: string) { const server = this.servers.find((server) => server.name === remote); if (server) { server.stop(); } } }