Socket
Socket
Sign inDemoInstall

forever

Package Overview
Dependencies
Maintainers
5
Versions
55
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

forever - npm Package Compare versions

Comparing version 2.0.0 to 3.0.0

157

lib/forever.js

@@ -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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc