UNPKG

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