UNPKG

forever-service

Version:

Provision node script as a service via forever, allowing it to automatically start on boot, working across various Linux distros and OS

52 lines (41 loc) 1.38 kB
var fs = require('fs'), path = require('path'), scriptBuilder = require('./scriptBuilder'); exports.validateScriptName = function(scriptname){ if(scriptname && scriptname[0] === path.sep) return fs.existsSync(scriptname); else return fs.existsSync( process.cwd()+'/'+scriptname ); } exports.install = function(ctx, callback){ scriptBuilder.gen(ctx, function(err, scripts){ if(err) return callback(err); ctx.installer.install(ctx, scripts, callback); }); } exports.delete = function(ctx, callback){ scriptBuilder.gen(ctx, function(err, scripts){ if(err) return callback(err); ctx.installer.delete(ctx, scripts, callback); }); } exports.splitEnvVariables=function(envVars){ //Split at space, but ignore space inside quotes.. envVarsArray = envVars.match(/(?:[^\s"']+|["'][^"']*["'])+/g); envVarsNameValueArray=[]; for(var evi in envVarsArray){ var ev = envVarsArray[evi]; //Look for first = sign to know the variable name, rest of value may contain = sign but will be ignored var eqlPos = ev.indexOf("="); if(eqlPos < 0) { //if no equal sign is found it is a problem since env variable is there without = so it will be an error console.log("Invalid env variable "+ev); process.exit(1); } var evp = [ ev.substring(0, eqlPos), ev.substring(eqlPos+1) ]; envVarsNameValueArray.push(evp); } return envVarsNameValueArray; }