Esempio n. 1
0
function writeConfig(env) {
  var plist = require('plist')
    , config = require('./config/config')[env]
    , path = require('path')
  
  /**
   * Setup launchdaemons
   */
  var dunkyPlistObj = {};
  dunkyPlistObj['Label'] = appName
  dunkyPlistObj['ProgramArguments'] = [
      config.nodePath
    , path.join(__dirname, 'server.js')
  ]
  
  dunkyPlistObj['RunAtLoad'] = true
  dunkyPlistObj['KeepAlive'] = true
  dunkyPlistObj['EnvironmentVariables'] = {
    NODE_ENV: env
  };
  dunkyPlistObj['StandardErrorPath'] = path.join(config.logsDir, 'com.dunkydooball.server.error.log')
  dunkyPlistObj['StandardOutPath'] = path.join(config.logsDir, 'com.dunkydooball.server.output.log')
  
  // generate the plist
  var plistData = plist.build(dunkyPlistObj).toString()
  // write it to file
  fs.writeFileSync(appCTLPath, plistData, 'utf8')
  console.log('info: '.cyan, 'Successfully created DunkyDooball Server configuration file')
  plistData = null
  
  var socketPlistObj = {};
  socketPlistObj['Label'] = socketServerName
  socketPlistObj['ProgramArguments'] = [
      config.nodePath
    , path.join(__dirname, 'utils', 'socketserver.js')
  ]
  
  socketPlistObj['RunAtLoad'] = true
  socketPlistObj['KeepAlive'] = true
  socketPlistObj['EnvironmentVariables'] = {
    NODE_ENV: env,
    PATH: "/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/sbin:/usr/sbin"
  };
  // IMPORTANT...required for privilege separation
  socketPlistObj['UserName'] = config.nodeUser
  socketPlistObj['StandardErrorPath'] = path.join(config.logsDir, 'com.dunkydooball.socketserver.error.log')
  socketPlistObj['StandardOutPath'] = path.join(config.logsDir, 'com.dunkydooball.socketserver.output.log')
  
  // generate the plist
  plistData = plist.build(socketPlistObj).toString()
  // write it to file
  fs.writeFileSync(socketCTLPath, plistData, 'utf8')
  console.log('info: '.cyan, 'Successfully created DunkyDooball Socket Server configuration file')
  ctl.loadSync(socketCTLPath)
  ctl.loadSync(appCTLPath)
}
Esempio n. 2
0
utils.load = function(p) {
  var res
  try {
    res = ctl.loadSync(p)
    if (res !== 0) {
      var e = ctl.errorFromCode(res)
      return e
    }
  }
  catch(e) {
    return e
  }
  return res
}
Esempio n. 3
0
function loadPath(p) {
  try {
    var res = ctl.loadSync(p)
    if (res !== 0) {
      console.log('error:'.red, 'Error loading: '+p)
      var e = ctl.errorFromErrno(res)
      console.log('error:'.red, e)
      throw e
    }    
  }
  catch (e) {
    console.log('error:'.red, 'Error loading: '+p)
    console.log('error:'.red, e)
    throw e
  }
}