Publish Nerbus source snapshot and build documentation
This commit is contained in:
commit
76cccceca7
198 files changed
+338574
No files matched your search
@@ -0,0 +1,63 @@
|
||||
const settings = require('../lib/settings');
|
||||
const { exec } = require('child_process');
|
||||
|
||||
function validate_port(port) {
|
||||
if (port == null || typeof port !== 'number' || port < 1 || port > 65535)
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
function check_webserver_running(cb) {
|
||||
// determine operating system
|
||||
switch (process.platform) {
|
||||
case 'win32':
|
||||
// windows
|
||||
exec(`for /f "tokens=5" %a in ('netstat -aon ^| findstr :${settings.webserver.port} ^| findstr LISTENING') do @echo %~nxa`, (err, stdout, stderr) => {
|
||||
// check if the port is open
|
||||
if (stdout != null && stdout != '') {
|
||||
// split the results in case there are multiple (usually because of ipv4 and ipv6)
|
||||
split = stdout.split('\n');
|
||||
|
||||
// return the kill cmd
|
||||
return cb(`taskkill /f /pid ${split[0]}`);
|
||||
} else
|
||||
return cb(null);
|
||||
});
|
||||
break;
|
||||
default:
|
||||
// linux, macos, etc.
|
||||
exec(`lsof -t -i:${settings.webserver.port}`, (err, stdout, stderr) => {
|
||||
// check if the port is open
|
||||
if (stdout != null && stdout != '') {
|
||||
// return the kill cmd
|
||||
return cb(`kill -2 ${stdout.trim()}`);
|
||||
} else
|
||||
return cb(null);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// check if the webserver.port value is a valid port #
|
||||
if (validate_port(settings.webserver.port) == true) {
|
||||
// check if the server is currently running
|
||||
check_webserver_running(function(killcmd) {
|
||||
// check return value
|
||||
if (killcmd != null) {
|
||||
// send a kill signal to the process that is currently using the explorer's server port
|
||||
exec(killcmd, (err, stdout, stderr) => {
|
||||
// show shutdown msg
|
||||
console.log(`${settings.localization.explorer_shutting_down}.. ${settings.localization.please_wait}..`);
|
||||
process.exit(0);
|
||||
});
|
||||
} else {
|
||||
// webserver is not running
|
||||
console.log('Error: Cannot stop explorer because it is not currently running');
|
||||
process.exit(1);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// invalid port number
|
||||
console.log('Error: webserver.port value not found in settings.json.');
|
||||
process.exit(1);
|
||||
}
|
||||
Reference in new issue
Block a user