Comparing version 2.0.0 to 3.0.0
@@ -9,17 +9,17 @@ /* | ||
var fs = require('fs'), | ||
path = require('path'), | ||
events = require('events'), | ||
exec = require('child_process').exec, | ||
spawn = require('child_process').spawn, | ||
cliff = require('cliff'), | ||
nconf = require('nconf'), | ||
nssocket = require('nssocket'), | ||
utile = require('utile'), | ||
winston = require('winston'), | ||
mkdirp = require('mkdirp'), | ||
async = require('async'), | ||
configUtils = require('./util/config-utils'); | ||
const fs = require("fs"), | ||
path = require("path"), | ||
events = require("events"), | ||
exec = require("child_process").exec, | ||
spawn = require("child_process").spawn, | ||
cliff = require("cliff"), | ||
nconf = require("nconf"), | ||
nssocket = require("nssocket"), | ||
utile = require("utile"), | ||
winston = require("winston"), | ||
mkdirp = require("mkdirp"), | ||
async = require("async"), | ||
configUtils = require("./util/config-utils"); | ||
var forever = exports; | ||
const forever = exports; | ||
@@ -72,3 +72,3 @@ // | ||
function getSockets(sockPath, callback) { | ||
var sockets; | ||
let sockets; | ||
@@ -97,7 +97,7 @@ try { | ||
function getAllProcesses(callback) { | ||
var sockPath = forever.config.get('sockPath'); | ||
const sockPath = forever.config.get("sockPath"); | ||
function getProcess(name, next) { | ||
var fullPath = path.join(sockPath, name), | ||
socket = new nssocket.NsSocket(); | ||
let fullPath = path.join(sockPath, name); | ||
const socket = new nssocket.NsSocket(); | ||
@@ -170,6 +170,6 @@ if (process.platform === 'win32') { | ||
function stopOrRestart(action, event, format, target) { | ||
var emitter = new events.EventEmitter(); | ||
const emitter = new events.EventEmitter(); | ||
function sendAction(proc, next) { | ||
var socket = new nssocket.NsSocket(); | ||
const socket = new nssocket.NsSocket(); | ||
@@ -188,4 +188,4 @@ function onMessage(data) { | ||
// | ||
var message = data && data.message, | ||
type = this.event.slice().pop(); | ||
const message = data && data.message, | ||
type = this.event.slice().pop(); | ||
@@ -231,3 +231,3 @@ // | ||
var procs; | ||
let procs; | ||
if (target !== undefined && target !== null) { | ||
@@ -364,3 +364,3 @@ if (isNaN(target)) { | ||
forever._debug = function () { | ||
var debug = forever.config.get('debug'); | ||
const debug = forever.config.get("debug"); | ||
@@ -391,3 +391,3 @@ if (!debug) { | ||
forever.stat = function (logFile, script, callback) { | ||
var logAppend; | ||
let logAppend; | ||
@@ -430,3 +430,3 @@ if (arguments.length === 4) { | ||
// | ||
var monitor = new forever.Monitor(script, options); | ||
const monitor = new forever.Monitor(script, options); | ||
forever.logEvents(monitor); | ||
@@ -448,4 +448,2 @@ return monitor.start(); | ||
var monitor, outFD, errFD, monitorPath; | ||
// | ||
@@ -457,7 +455,7 @@ // This log file is forever's log file - the user's outFile and errFile | ||
// | ||
outFD = fs.openSync(options.logFile, 'a'); | ||
errFD = fs.openSync(options.logFile, 'a'); | ||
monitorPath = path.resolve(__dirname, '..', 'bin', 'monitor'); | ||
const outFD = fs.openSync(options.logFile, 'a'); | ||
const errFD = fs.openSync(options.logFile, 'a'); | ||
const monitorPath = path.resolve(__dirname, '..', 'bin', 'monitor'); | ||
monitor = spawn(process.execPath, [monitorPath, script], { | ||
const monitor = spawn(process.execPath, [monitorPath, script], { | ||
stdio: ['ipc', outFD, errFD], | ||
@@ -495,5 +493,5 @@ detached: true | ||
forever.startServer = function () { | ||
var args = Array.prototype.slice.call(arguments), | ||
monitors = [], | ||
callback; | ||
const args = Array.prototype.slice.call(arguments); | ||
let monitors = [], | ||
callback; | ||
@@ -515,5 +513,5 @@ args.forEach(function (a) { | ||
async.map(monitors, function (monitor, next) { | ||
var worker = new forever.Worker({ | ||
const worker = new forever.Worker({ | ||
monitor: monitor, | ||
sockPath: forever.config.get('sockPath'), | ||
sockPath: forever.config.get("sockPath"), | ||
exitOnStop: true | ||
@@ -608,9 +606,13 @@ }); | ||
var that = this, | ||
length = options.length || forever.config.get('loglength'), | ||
stream = options.stream || forever.config.get('logstream'), | ||
blanks = function (e, i, a) { return e !== ''; }, | ||
title = function (e, i, a) { return e.match(/^==>/); }, | ||
args = ['-n', length], | ||
logs; | ||
const that = this, | ||
length = options.length || forever.config.get("loglength"), | ||
stream = options.stream || forever.config.get("logstream"), | ||
blanks = function(e, i, a) { | ||
return e !== ""; | ||
}, | ||
title = function(e, i, a) { | ||
return e.match(/^==>/); | ||
}, | ||
args = ["-n", length]; | ||
let logs; | ||
@@ -620,5 +622,4 @@ if (stream) { args.unshift('-f'); } | ||
function tailProcess(procs, next) { | ||
var count = 0, | ||
map = {}, | ||
tail; | ||
let count = 0; | ||
const map = {}; | ||
@@ -631,3 +632,3 @@ procs.forEach(function (proc) { | ||
tail = spawn('tail', args, { | ||
const tail = spawn('tail', args, { | ||
stdio: [null, 'pipe', 'pipe'], | ||
@@ -640,14 +641,12 @@ }); | ||
tail.stdio[1].on('data', function (data) { | ||
var chunk = data.split('\n\n'); | ||
const chunk = data.split("\n\n"); | ||
chunk.forEach(function (logs) { | ||
var filteredLogs = logs.split('\n').filter(blanks), | ||
file = filteredLogs.filter(title), | ||
lines, | ||
proc; | ||
const filteredLogs = logs.split("\n").filter(blanks), | ||
file = filteredLogs.filter(title); | ||
proc = file.length | ||
const proc = file.length | ||
? map[file[0].split(' ')[1]] | ||
: map[procs[0].logFile]; | ||
lines = count !== 1 | ||
const lines = count !== 1 | ||
? filteredLogs.slice(1) | ||
@@ -675,3 +674,3 @@ : filteredLogs; | ||
var procs = forever.findByIndex(target, processes) | ||
const procs = forever.findByIndex(target, processes) | ||
|| forever.findByScript(target, processes); | ||
@@ -696,3 +695,3 @@ | ||
var procs = processes.filter(function (p) { | ||
let procs = processes.filter(function(p) { | ||
return p.id === id; | ||
@@ -712,4 +711,4 @@ }); | ||
forever.findByIndex = function (index, processes) { | ||
var indexAsNum = parseInt(index, 10), | ||
proc; | ||
const indexAsNum = parseInt(index, 10); | ||
let proc; | ||
@@ -736,3 +735,3 @@ if (indexAsNum == index) { | ||
var procs = processes.filter(function (p) { | ||
let procs = processes.filter(function(p) { | ||
return p.file === script || path.join(p.spawnWith.cwd, p.file) === script; | ||
@@ -752,5 +751,5 @@ }); | ||
forever.findByUid = function (script, processes) { | ||
var procs = !processes | ||
let procs = !processes | ||
? null | ||
: processes.filter(function (p) { | ||
: processes.filter(function(p) { | ||
return p.uid === script; | ||
@@ -774,3 +773,3 @@ }); | ||
var procs = processes && processes.filter(function (p) { | ||
let procs = processes && processes.filter(function(p) { | ||
return p.pid === pid; | ||
@@ -795,6 +794,6 @@ }); | ||
var index = 0, | ||
columns = forever.config.get('columns'), | ||
rows = [[' '].concat(columns)], | ||
formatted; | ||
let index = 0; | ||
const columns = forever.config.get("columns"), | ||
rows = [[" "].concat(columns)]; | ||
let formatted; | ||
@@ -836,4 +835,4 @@ function mapColumns(prefix, mapFn) { | ||
forever.cleanUp = function (cleanLogs, allowManager) { | ||
var emitter = new events.EventEmitter(), | ||
pidPath = forever.config.get('pidPath'); | ||
const emitter = new events.EventEmitter(), | ||
pidPath = forever.config.get("pidPath"); | ||
@@ -927,12 +926,10 @@ getAllProcesses(function (err, processes) { | ||
forever.cleanLogsSync = function (processes) { | ||
var root = forever.config.get('root'), | ||
files = fs.readdirSync(root), | ||
running, | ||
runningLogs; | ||
const root = forever.config.get("root"), | ||
files = fs.readdirSync(root); | ||
running = processes && processes.filter(function (p) { | ||
const running = processes && processes.filter(function (p) { | ||
return p && p.logFile; | ||
}); | ||
runningLogs = running && running.map(function (p) { | ||
const runningLogs = running && running.map(function (p) { | ||
return p.logFile.split('/').pop(); | ||
@@ -1057,10 +1054,10 @@ }); | ||
var delta = (new Date().getTime() - proc.ctime) / 1000; | ||
var days = Math.floor(delta / 86400); | ||
let delta = (new Date().getTime() - proc.ctime) / 1000; | ||
const days = Math.floor(delta / 86400); | ||
delta -= days * 86400; | ||
var hours = Math.floor(delta / 3600) % 24; | ||
const hours = Math.floor(delta / 3600) % 24; | ||
delta -= hours * 3600; | ||
var minutes = Math.floor(delta / 60) % 60; | ||
const minutes = Math.floor(delta / 60) % 60; | ||
delta -= minutes * 60; | ||
var seconds = delta % 60; | ||
const seconds = delta % 60; | ||
@@ -1067,0 +1064,0 @@ return (days+':'+hours+':'+minutes+':'+seconds).yellow; |
@@ -14,3 +14,2 @@ /* | ||
cliff = require('cliff'), | ||
isAbsolute = require('path-is-absolute'), | ||
flatiron = require('flatiron'), | ||
@@ -208,3 +207,3 @@ shush = require('shush'), | ||
var options = {}, | ||
absFile = isAbsolute(file) ? file : path.resolve(process.cwd(), file), | ||
absFile = path.isAbsolute(file) ? file : path.resolve(process.cwd(), file), | ||
configKeys = [ | ||
@@ -211,0 +210,0 @@ 'pidFile', 'logFile', 'errFile', 'watch', 'minUptime', 'append', |
@@ -5,3 +5,3 @@ { | ||
"description": "A simple CLI tool for ensuring that a given node script runs continuously (i.e. forever)", | ||
"version": "2.0.0", | ||
"version": "3.0.0", | ||
"author": "Charlie Robbins <charlie.robbins@gmail.com>", | ||
@@ -26,10 +26,10 @@ "maintainers": [ | ||
"colors": "^0.6.2", | ||
"flatiron": "~0.4.2", | ||
"forever-monitor": "^2.0.0", | ||
"deep-equal": "^1.1.1", | ||
"flatiron": "~0.4.3", | ||
"forever-monitor": "^3.0.0", | ||
"mkdirp": "^0.5.5", | ||
"nconf": "^0.10.0", | ||
"mkdirp": "^0.5.1", | ||
"nssocket": "^0.6.0", | ||
"object-assign": "^4.1.1", | ||
"optimist": "^0.6.1", | ||
"path-is-absolute": "^2.0.0", | ||
"prettyjson": "^1.2.1", | ||
@@ -43,10 +43,11 @@ "shush": "^1.0.0", | ||
"chai": "^4.2.0", | ||
"cli-testlab": "^1.10.0", | ||
"eslint": "^5.16.0", | ||
"eslint-plugin-prettier": "^3.1.2", | ||
"eslint-config-prettier": "^6.5.0", | ||
"eventemitter2": "^6.0.0", | ||
"eslint-plugin-prettier": "^3.1.3", | ||
"eslint-config-prettier": "^6.11.0", | ||
"eventemitter2": "6.0.0", | ||
"mocha": "^6.2.2", | ||
"moment": "^2.24.0", | ||
"prettier": "^1.19.1", | ||
"request": "2.88.0", | ||
"request": "2.88.2", | ||
"vows": "0.7.x" | ||
@@ -60,4 +61,6 @@ }, | ||
"lint": "eslint \"lib/**/*.js\" \"test/**/*.js\"", | ||
"test": "npm run test:vows && npm run test:mocha", | ||
"test:mocha": "mocha test/mocha/**/*.spec.js", | ||
"test:vows": "vows test/**/*-test.js --dot-matrix -i", | ||
"test:ci": "npm run lint && npm run test:vows", | ||
"test:ci": "npm run lint && npm test", | ||
"prettier": "prettier --write \"{lib,examples,test}/**/*.js\"" | ||
@@ -64,0 +67,0 @@ }, |
@@ -253,2 +253,3 @@ # forever | ||
#### Author: [Charlie Robbins](https://github.com/indexzero) | ||
#### Maintainer: [Igor Savin](https://github.com/kibertoad) | ||
#### Contributors: [Fedor Indutny](https://github.com/indutny), [James Halliday](http://substack.net/), [Charlie McConnell](https://github.com/avianflu), [Maciej Malecki](https://github.com/mmalecki), [John Lancaster](http://jlank.com) | ||
@@ -255,0 +256,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
147079
259
12
1627
+ Addeddeep-equal@^1.1.1
+ Addeddeep-equal@1.1.2(transitive)
+ Addedeventemitter2@6.4.9(transitive)
+ Addedforever-monitor@3.0.3(transitive)
+ Addedps-tree@1.2.0(transitive)
- Removedpath-is-absolute@^2.0.0
- Removedarray-buffer-byte-length@1.0.1(transitive)
- Removedavailable-typed-arrays@1.0.7(transitive)
- Removeddeep-equal@2.2.3(transitive)
- Removedes-get-iterator@1.1.3(transitive)
- Removedevent-stream@0.5.3(transitive)
- Removedfor-each@0.3.3(transitive)
- Removedforever-monitor@2.0.0(transitive)
- Removedhas-bigints@1.0.2(transitive)
- Removedinternal-slot@1.0.7(transitive)
- Removedis-array-buffer@3.0.4(transitive)
- Removedis-bigint@1.0.4(transitive)
- Removedis-boolean-object@1.1.2(transitive)
- Removedis-callable@1.2.7(transitive)
- Removedis-map@2.0.3(transitive)
- Removedis-number-object@1.0.7(transitive)
- Removedis-set@2.0.3(transitive)
- Removedis-shared-array-buffer@1.0.3(transitive)
- Removedis-string@1.0.7(transitive)
- Removedis-symbol@1.0.4(transitive)
- Removedis-weakmap@2.0.2(transitive)
- Removedis-weakset@2.0.3(transitive)
- Removedisarray@2.0.5(transitive)
- Removedobject-inspect@1.13.2(transitive)
- Removedobject.assign@4.1.5(transitive)
- Removedoptimist@0.2.8(transitive)
- Removedpath-is-absolute@2.0.0(transitive)
- Removedpossible-typed-array-names@1.0.0(transitive)
- Removedps-tree@0.0.3(transitive)
- Removedside-channel@1.0.6(transitive)
- Removedstop-iteration-iterator@1.0.0(transitive)
- Removedwhich-boxed-primitive@1.0.2(transitive)
- Removedwhich-collection@1.0.2(transitive)
- Removedwhich-typed-array@1.1.15(transitive)
Updatedflatiron@~0.4.3
Updatedforever-monitor@^3.0.0
Updatedmkdirp@^0.5.5