From 615f28f1a686affcd560518f40c1eb1f5beb526f Mon Sep 17 00:00:00 2001 From: Mark Vayngrib Date: Fri, 10 Aug 2018 11:02:29 -0400 Subject: [PATCH] feat: add runAsUserAgent option allow to run under logged in user, storing conf and logs in ~/Library/ --- lib/daemon.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/daemon.js b/lib/daemon.js index 7514ed7..b2648c6 100644 --- a/lib/daemon.js +++ b/lib/daemon.js @@ -21,13 +21,21 @@ */ var plist = require('plist'), fs = require('fs'), + os = require('os'), p = require('path'), exec = require('child_process').exec, wrapper = p.resolve(p.join(__dirname,'./wrapper.js')); var daemon = function(config) { - config.runAsAgent = config.hasOwnProperty('runAsAgent') ? config.runAsAgent: false; + config.runAsUserAgent = config.hasOwnProperty('runAsUserAgent') ? config.runAsUserAgent: false; + if (config.runAsUserAgent) { + config.runAsAgent = true; + } else { + config.runAsAgent = config.hasOwnProperty('runAsAgent') ? config.runAsAgent: false; + } + + const libPath = config.runAsUserAgent ? p.resolve(os.homedir(), 'Library') : '/Library' Object.defineProperties(this,{ @@ -190,14 +198,14 @@ var daemon = function(config) { enumerable: true, writable: true, configurable: false, - value: config.script !== undefined ? require('path').resolve(config.script) : null + value: config.script !== undefined ? p.resolve(config.script) : null }, root: { enumerable: false, writable: true, configurable: false, - value: config.runAsAgent ? '/Library/LaunchAgents' : '/Library/LaunchDaemons' + value: config.runAsAgent ? `${libPath}/LaunchAgents` : `${libPath}/LaunchDaemons` }, /** @@ -208,7 +216,7 @@ var daemon = function(config) { enumerable: true, writable: true, configurable: false, - value: config.logpath || '/Library/Logs/'+(this.name || config.name || 'node-scripts') + value: config.logpath || `${libPath}/Logs/`+(this.name || config.name || 'node-scripts') }, /**