Server : nginx/1.20.1 System : Linux ccpf-production-2021 5.4.0-148-generic #165-Ubuntu SMP Tue Apr 18 08:53:12 UTC 2023 x86_64 User : forge ( 1000) PHP Version : 7.4.21 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /lib/node_modules/gulp/node_modules/flagged-respawn/ |
var reorder = require('./lib/reorder');
var respawn = require('./lib/respawn');
var remover = require('./lib/remover');
var FORBID_RESPAWNING_FLAG = '--no-respawning';
module.exports = function(flags, argv, forcedFlags, execute) {
if (!flags) {
throw new Error('You must specify flags to respawn with.');
}
if (!argv) {
throw new Error('You must specify an argv array.');
}
if (typeof forcedFlags === 'function') {
execute = forcedFlags;
forcedFlags = [];
}
if (typeof forcedFlags === 'string') {
forcedFlags = [forcedFlags];
}
if (!Array.isArray(forcedFlags)) {
forcedFlags = [];
}
var index = argv.indexOf(FORBID_RESPAWNING_FLAG);
if (index >= 0) {
argv = argv.slice(0, index).concat(argv.slice(index + 1));
argv = remover(flags, argv);
execute(true, process, argv);
return;
}
var proc = process;
var reordered = reorder(flags, argv);
var ready = JSON.stringify(argv) === JSON.stringify(reordered);
if (forcedFlags.length) {
reordered = reordered.slice(0, 1)
.concat(forcedFlags)
.concat(reordered.slice(1));
ready = false;
}
if (!ready) {
reordered.push(FORBID_RESPAWNING_FLAG);
proc = respawn(reordered);
}
execute(ready, proc, reordered);
};