kannon-client/libs/util.js

51 lines
1.1 KiB
JavaScript
Raw Normal View History

const { spawn } = require('child_process');
2022-04-14 14:25:48 +02:00
function isEnabled(parameter) {
return isSet(parameter?.enabled) && parameter.enabled === true;
}
function isDisabled(parameter) {
return isSet(parameter?.enabled) && parameter.enabled === false;
}
function isSet(parameter) {
return parameter !== undefined;
}
function isUnset(parameter) {
return !isSet(parameter);
}
async function sleep(ms) {
if (isNaN(ms)) {
return;
}
return new Promise((resolve, reject) => {
setTimeout(resolve, ms);
});
}
function restart() {
2022-05-03 15:21:42 +02:00
logger.info('restarting...');
const args = process.argv;
const cmd = args[0];
args.shift();
const newProcess = spawn(cmd, args, { detached: true, stdio: 'ignore' });
newProcess.unref();
newProcess.on('error', (error) => {
2022-05-03 15:21:42 +02:00
logger.error('encountered an error restarting: ' + error);
});
newProcess.on('spawn', () => {
2022-05-03 15:21:42 +02:00
logger.warn('spawned process with pid \'' + newProcess.pid + '\'');
process.exit(0);
});
}
2022-04-14 14:25:48 +02:00
module.exports = {
isEnabled,
isDisabled,
isSet,
isUnset,
sleep,
restart
2022-04-14 14:25:48 +02:00
}