HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,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_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/server/nodejs/v14.17.6/lib/node_modules/pm2/lib/API/Modules/flagExt.js
var fs          = require('fs');
var conf         = require('../../../constants.js');

function  find_extensions(folder, ext, ret)
{
    try {
      fs.accessSync(folder, fs.constants.R_OK);
    } catch (err) {
      return;
    }
    if(fs.statSync(folder).isDirectory() && folder.indexOf('node_modules') == -1 && (fs.statSync(folder)["mode"] & 4))
    {
      fs.readdirSync(folder).forEach(file => {
          var tmp;
          if(Number.parseInt(folder.lastIndexOf('/') + 1) === folder.length)
            tmp = folder + file;
          else
            tmp = folder + '/' + file;
          if(fs.statSync(tmp).isDirectory())
            find_extensions(tmp, ext, ret);
          else
          {
          var p = true;
          for(var i = 0; i < ext.length;i++)
            if(ext[i].test(file))
              p = false;
          if(p)
            ret.push(folder +  '/' + file);
          }
      });
  }
}

module.exports.make_available_extension = function  make_available_extension(opts, ret)
{
  if(typeof opts == 'object'  && typeof ret == 'object')
  {
    var mas = opts.ext.split(',');
    for(var i = 0;i < mas.length;i++)
      mas[i] = '.' + mas[i];
    var res = [];
    for(var i = 0;i < mas.length;i++)
      res[i] = new RegExp(mas[i] + '$');
    find_extensions(process.cwd(), res, ret);
  }
}