VersionCheck.js 1022 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. var vCheck = require('@pm2/pm2-version-check')
  2. var semver = require('semver')
  3. var fs = require('fs')
  4. var os = require('os')
  5. function hasDockerEnv() {
  6. try {
  7. fs.statSync('/.dockerenv');
  8. return true;
  9. } catch (_) {
  10. return false;
  11. }
  12. }
  13. function hasDockerCGroup() {
  14. try {
  15. return fs.readFileSync('/proc/self/cgroup', 'utf8').includes('docker');
  16. } catch (_) {
  17. return false;
  18. }
  19. }
  20. module.exports = function (opts) {
  21. var params = {
  22. state: opts.state,
  23. version: opts.version
  24. }
  25. try {
  26. params.os = os.type()
  27. params.uptime = Math.floor(process.uptime())
  28. params.nodev = process.versions.node
  29. params.docker = hasDockerEnv() || hasDockerCGroup()
  30. } catch(e) {
  31. }
  32. vCheck.runCheck(params, (err, pkg) => {
  33. if (err) return false
  34. if (!pkg.current_version) return false
  35. if (opts.version && semver.lt(opts.version, pkg.current_version)) {
  36. console.log('[PM2] This PM2 is not UP TO DATE')
  37. console.log('[PM2] Upgrade to version %s', pkg.current_version)
  38. }
  39. })
  40. }