dev-app/src/lib/ssh/manager.ts
2024-12-04 20:10:54 +08:00

47 lines
1.1 KiB
TypeScript

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();
}
}
}