47 lines
1.1 KiB
TypeScript
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();
|
|
}
|
|
}
|
|
}
|