Update status of server when is already running

This commit is contained in:
ziajka 2019-02-12 15:34:18 +01:00
parent af90fe46d0
commit 6759568933
3 changed files with 39 additions and 13 deletions

View File

@ -47,6 +47,10 @@ exports.stopLocalServer = async (server) => {
return await stop(server.name);
}
exports.getRunningServers = () => {
return Object.keys(runningServers);
}
function getServerArguments(server, overrides) {
let serverArguments = [];
return serverArguments;
@ -81,18 +85,26 @@ async function stop(serverName) {
const stopped = new Promise((resolve, reject) => {
if(pid === undefined) {
resolve(`Server '${serverName} is already stopped`);
delete runningServers[serverName];
return;
}
kill(pid, (error) => {
if(error) {
console.error(`Error occured during stopping '${serverName}' with PID='${pid}'`);
reject(error);
}
else {
console.log(`Stopped '${serverName}' with PID='${pid}'`);
resolve(`Stopped '${serverName}' with PID='${pid}'`);
}
if(error) {
console.error(`Error occured during stopping '${serverName}' with PID='${pid}'`);
reject(error);
}
else {
delete runningServers[serverName];
console.log(`Stopped '${serverName}' with PID='${pid}'`);
resolve(`Stopped '${serverName}' with PID='${pid}'`);
notifyStatus({
serverName: serverName,
status: 'stopped',
message: `Server '${serverName}' stopped'`
});
}
});
});
@ -134,11 +146,13 @@ async function run(server, options) {
});
serverProcess.on('exit', (code, signal) => {
notifyStatus({
serverName: server.name,
status: 'errored',
message: `Server '${server.name}' has exited with status='${code}'`
});
if(code > 0) {
notifyStatus({
serverName: server.name,
status: 'errored',
message: `Server '${server.name}' has exited with status='${code}'`
});
}
});
serverProcess.on('error', (err) => {

View File

@ -30,7 +30,15 @@ export class ServersComponent implements OnInit, OnDestroy {
) {}
ngOnInit() {
const runningServersNames = this.serverManagement.getRunningServers();
this.serverService.findAll().then((servers: Server[]) => {
servers.forEach((server) => {
const serverIndex = runningServersNames.findIndex((serverName) => server.name === serverName);
if(serverIndex >= 0) {
server.status = 'running';
}
});
this.serverDatabase.addServers(servers);
});

View File

@ -36,6 +36,10 @@ export class ServerManagementService implements OnDestroy {
await this.electronService.remote.require('./local-server.js').stopLocalServer(server);
}
getRunningServers() {
return this.electronService.remote.require('./local-server.js').getRunningServers();
}
ngOnDestroy() {
if(this.electronService.isElectronApp) {
this.electronService.ipcRenderer.removeAllListeners(this.statusChannel);