mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-10 07:55:46 +01:00
closes #6200
This commit is contained in:
@@ -10,6 +10,7 @@ var less = require('less');
|
|||||||
var async = require('async');
|
var async = require('async');
|
||||||
var uglify = require('uglify-js');
|
var uglify = require('uglify-js');
|
||||||
var nconf = require('nconf');
|
var nconf = require('nconf');
|
||||||
|
var _ = require('lodash');
|
||||||
var Benchpress = require('benchpressjs');
|
var Benchpress = require('benchpressjs');
|
||||||
|
|
||||||
var app = express();
|
var app = express();
|
||||||
@@ -103,14 +104,15 @@ function welcome(req, res) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function install(req, res) {
|
function install(req, res) {
|
||||||
|
var setupEnvVars = _.assign({}, process.env);
|
||||||
for (var i in req.body) {
|
for (var i in req.body) {
|
||||||
if (req.body.hasOwnProperty(i) && !process.env.hasOwnProperty(i)) {
|
if (req.body.hasOwnProperty(i) && !process.env.hasOwnProperty(i)) {
|
||||||
process.env[i.replace(':', '__')] = req.body[i];
|
setupEnvVars[i.replace(':', '__')] = req.body[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var child = require('child_process').fork('app', ['--setup'], {
|
var child = require('child_process').fork('app', ['--setup'], {
|
||||||
env: process.env,
|
env: setupEnvVars,
|
||||||
});
|
});
|
||||||
|
|
||||||
child.on('close', function (data) {
|
child.on('close', function (data) {
|
||||||
|
|||||||
@@ -37,19 +37,22 @@ redisModule.questions = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
redisModule.init = function (callback) {
|
redisModule.init = function (callback) {
|
||||||
redisClient = redisModule.connect();
|
callback = callback || function () { };
|
||||||
|
redisClient = redisModule.connect({}, function (err) {
|
||||||
|
if (err) {
|
||||||
|
winston.error('NodeBB could not connect to your Redis database. Redis returned the following error', err);
|
||||||
|
return callback(err);
|
||||||
|
}
|
||||||
|
redisModule.client = redisClient;
|
||||||
|
|
||||||
redisModule.client = redisClient;
|
require('./redis/main')(redisClient, redisModule);
|
||||||
|
require('./redis/hash')(redisClient, redisModule);
|
||||||
|
require('./redis/sets')(redisClient, redisModule);
|
||||||
|
require('./redis/sorted')(redisClient, redisModule);
|
||||||
|
require('./redis/list')(redisClient, redisModule);
|
||||||
|
|
||||||
require('./redis/main')(redisClient, redisModule);
|
|
||||||
require('./redis/hash')(redisClient, redisModule);
|
|
||||||
require('./redis/sets')(redisClient, redisModule);
|
|
||||||
require('./redis/sorted')(redisClient, redisModule);
|
|
||||||
require('./redis/list')(redisClient, redisModule);
|
|
||||||
|
|
||||||
if (typeof callback === 'function') {
|
|
||||||
callback();
|
callback();
|
||||||
}
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
redisModule.initSessionStore = function (callback) {
|
redisModule.initSessionStore = function (callback) {
|
||||||
@@ -66,7 +69,8 @@ redisModule.initSessionStore = function (callback) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
redisModule.connect = function (options) {
|
redisModule.connect = function (options, callback) {
|
||||||
|
callback = callback || function () {};
|
||||||
var redis_socket_or_host = nconf.get('redis:host');
|
var redis_socket_or_host = nconf.get('redis:host');
|
||||||
var cxn;
|
var cxn;
|
||||||
|
|
||||||
@@ -88,7 +92,11 @@ redisModule.connect = function (options) {
|
|||||||
|
|
||||||
cxn.on('error', function (err) {
|
cxn.on('error', function (err) {
|
||||||
winston.error(err.stack);
|
winston.error(err.stack);
|
||||||
process.exit(1);
|
callback(err);
|
||||||
|
});
|
||||||
|
|
||||||
|
cxn.on('ready', function () {
|
||||||
|
callback();
|
||||||
});
|
});
|
||||||
|
|
||||||
if (nconf.get('redis:password')) {
|
if (nconf.get('redis:password')) {
|
||||||
@@ -99,7 +107,7 @@ redisModule.connect = function (options) {
|
|||||||
if (dbIdx >= 0) {
|
if (dbIdx >= 0) {
|
||||||
cxn.select(dbIdx, function (err) {
|
cxn.select(dbIdx, function (err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
winston.error('NodeBB could not connect to your Redis database. Redis returned the following error', err);
|
winston.error('NodeBB could not select Redis database. Redis returned the following error', err);
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -157,16 +157,17 @@ function completeConfigSetup(config, next) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nconf.overrides(config);
|
||||||
async.waterfall([
|
async.waterfall([
|
||||||
function (next) {
|
|
||||||
install.save(config, next);
|
|
||||||
},
|
|
||||||
function (next) {
|
function (next) {
|
||||||
require('./database').init(next);
|
require('./database').init(next);
|
||||||
},
|
},
|
||||||
function (next) {
|
function (next) {
|
||||||
require('./database').createIndices(next);
|
require('./database').createIndices(next);
|
||||||
},
|
},
|
||||||
|
function (next) {
|
||||||
|
install.save(config, next);
|
||||||
|
},
|
||||||
], next);
|
], next);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -523,7 +524,7 @@ install.setup = function (callback) {
|
|||||||
], function (err, results) {
|
], function (err, results) {
|
||||||
if (err) {
|
if (err) {
|
||||||
winston.warn('NodeBB Setup Aborted.\n ' + err.stack);
|
winston.warn('NodeBB Setup Aborted.\n ' + err.stack);
|
||||||
process.exit();
|
process.exit(1);
|
||||||
} else {
|
} else {
|
||||||
var data = {};
|
var data = {};
|
||||||
if (results[6]) {
|
if (results[6]) {
|
||||||
|
|||||||
Reference in New Issue
Block a user