Skip to content

Commit

Permalink
[config] add carapace:env to allow configuration of spawn environment
Browse files Browse the repository at this point in the history
  • Loading branch information
bmeck committed Jul 5, 2012
1 parent 8225be7 commit 1748037
Showing 1 changed file with 14 additions and 11 deletions.
25 changes: 14 additions & 11 deletions lib/haibu/core/spawner.js
Expand Up @@ -9,10 +9,11 @@ var fs = require('fs'),
path = require('path'),
forever = require('forever'),
semver = require('semver'),
mixin = require('flatiron').common.mixin,
haibu = require('../../haibu');

haibu.getSpawnOptions = function getSpawnOptions (app) {
var env = app.env,
var env = {},
command = 'node',
nodeDir,
version,
Expand Down Expand Up @@ -66,21 +67,23 @@ haibu.getSpawnOptions = function getSpawnOptions (app) {
if (semver.lt(version, '0.6.5')) {
options.forkShim = carapaceVersions ? path.join(options.carapaceBin, '..', '..', '..', 'node-fork', 'lib', 'fork.js') : true;
}
env = env || {}
env.NODE_VERSION = 'v'+version;
env.NODE_PREFIX = nodeDir;
env.NODE_PATH = path.join(nodeDir, 'lib', 'node_modules');
var concatPATH = (process.env.PATH ? ':' + process.env.PATH : '');
env.PATH = path.join(nodeDir, 'bin') + ':' + path.join(nodeDir, 'node_modules') + concatPATH;
var concatCPATH = (process.env.CPATH ? ':' + process.env.CPATH : '');
env.CPATH = path.join(nodeDir, 'include') + ':' + path.join(nodeDir, 'include', 'node') + concatCPATH;
var concatLIBRARY_PATH = (process.env.LIBRARY_PATH ? ':' + process.env.LIBRARY_PATH : '');
env.LIBRARY_PATH = path.join(nodeDir, 'lib') + ':' + path.join(nodeDir, 'lib', 'node') + concatLIBRARY_PATH;
env.NODE_VERSION = 'v'+version;
env.NODE_PREFIX = nodeDir;
env.NODE_PATH = path.join(nodeDir, 'lib', 'node_modules');
var concatPATH = (process.env.PATH ? ':' + process.env.PATH : '');
env.PATH = path.join(nodeDir, 'bin') + ':' + path.join(nodeDir, 'node_modules') + concatPATH;
var concatCPATH = (process.env.CPATH ? ':' + process.env.CPATH : '');
env.CPATH = path.join(nodeDir, 'include') + ':' + path.join(nodeDir, 'include', 'node') + concatCPATH;
var concatLIBRARY_PATH = (process.env.LIBRARY_PATH ? ':' + process.env.LIBRARY_PATH : '');
env.LIBRARY_PATH = path.join(nodeDir, 'lib') + ':' + path.join(nodeDir, 'lib', 'node') + concatLIBRARY_PATH;

options.cwd = nodeDir;
command = path.join(nodeDir, 'bin', 'node');
}

var carapaceEnv = haibu.config.get('carapace:env');
if (carapaceEnv) mixin(env, carapaceEnv);
if (app.env) mixin(env, app.env);
options.env = env;
options.command = command;
return options;
Expand Down

0 comments on commit 1748037

Please sign in to comment.