style change

v1.18.x
barisusakli 8 years ago
parent 08dd412896
commit 3d39a577f4

@ -1,166 +1,161 @@
'use strict'; 'use strict';
(function (module) { var _ = require('underscore');
var winston = require('winston'); var winston = require('winston');
var nconf = require('nconf'); var nconf = require('nconf');
var semver = require('semver'); var semver = require('semver');
var session = require('express-session'); var session = require('express-session');
var redis; var redis = require('redis');
var redisClient; var redisClient;
module.questions = [ var redisModule = module.exports;
{
name: 'redis:host', redisModule.questions = [
description: 'Host IP or address of your Redis instance', {
default: nconf.get('redis:host') || '127.0.0.1', name: 'redis:host',
}, description: 'Host IP or address of your Redis instance',
{ default: nconf.get('redis:host') || '127.0.0.1',
name: 'redis:port', },
description: 'Host port of your Redis instance', {
default: nconf.get('redis:port') || 6379, name: 'redis:port',
}, description: 'Host port of your Redis instance',
{ default: nconf.get('redis:port') || 6379,
name: 'redis:password', },
description: 'Password of your Redis database', {
hidden: true, name: 'redis:password',
default: nconf.get('redis:password') || '', description: 'Password of your Redis database',
before: function (value) { value = value || nconf.get('redis:password') || ''; return value; }, hidden: true,
}, default: nconf.get('redis:password') || '',
{ before: function (value) { value = value || nconf.get('redis:password') || ''; return value; },
name: 'redis:database', },
description: 'Which database to use (0..n)', {
default: nconf.get('redis:database') || 0, name: 'redis:database',
}, description: 'Which database to use (0..n)',
]; default: nconf.get('redis:database') || 0,
},
module.init = function (callback) { ];
try {
redis = require('redis'); redisModule.init = function (callback) {
} catch (err) {
winston.error('Unable to initialize Redis! Is Redis installed? Error :' + err.message); redisClient = redisModule.connect();
process.exit();
} redisModule.client = redisClient;
redisClient = module.connect(); require('./redis/main')(redisClient, redisModule);
require('./redis/hash')(redisClient, redisModule);
module.client = redisClient; require('./redis/sets')(redisClient, redisModule);
require('./redis/sorted')(redisClient, redisModule);
require('./redis/main')(redisClient, module); require('./redis/list')(redisClient, redisModule);
require('./redis/hash')(redisClient, module);
require('./redis/sets')(redisClient, module); if (typeof callback === 'function') {
require('./redis/sorted')(redisClient, module); callback();
require('./redis/list')(redisClient, module); }
};
if (typeof callback === 'function') {
callback(); redisModule.initSessionStore = function (callback) {
} var meta = require('../meta');
}; var sessionStore = require('connect-redis')(session);
module.initSessionStore = function (callback) { redisModule.sessionStore = new sessionStore({
var meta = require('../meta'); client: redisModule.client,
var sessionStore = require('connect-redis')(session); ttl: meta.getSessionTTLSeconds(),
});
module.sessionStore = new sessionStore({
client: module.client, if (typeof callback === 'function') {
ttl: meta.getSessionTTLSeconds(), callback();
}
};
redisModule.connect = function (options) {
var redis_socket_or_host = nconf.get('redis:host');
var cxn;
if (!redis) {
redis = require('redis');
}
options = options || {};
if (nconf.get('redis:password')) {
options.auth_pass = nconf.get('redis:password');
}
if (redis_socket_or_host && redis_socket_or_host.indexOf('/') >= 0) {
/* If redis.host contains a path name character, use the unix dom sock connection. ie, /tmp/redis.sock */
cxn = redis.createClient(nconf.get('redis:host'), options);
} else {
/* Else, connect over tcp/ip */
cxn = redis.createClient(nconf.get('redis:port'), nconf.get('redis:host'), options);
}
cxn.on('error', function (err) {
winston.error(err.stack);
process.exit(1);
});
if (nconf.get('redis:password')) {
cxn.auth(nconf.get('redis:password'));
}
var dbIdx = parseInt(nconf.get('redis:database'), 10);
if (dbIdx) {
cxn.select(dbIdx, function (error) {
if (error) {
winston.error('NodeBB could not connect to your Redis database. Redis returned the following error: ' + error.message);
process.exit();
}
}); });
}
if (typeof callback === 'function') { return cxn;
callback(); };
}
};
module.connect = function (options) {
var redis_socket_or_host = nconf.get('redis:host');
var cxn;
if (!redis) { redisModule.createIndices = function (callback) {
redis = require('redis'); setImmediate(callback);
} };
options = options || {};
if (nconf.get('redis:password')) {
options.auth_pass = nconf.get('redis:password');
}
if (redis_socket_or_host && redis_socket_or_host.indexOf('/') >= 0) { redisModule.checkCompatibility = function (callback) {
/* If redis.host contains a path name character, use the unix dom sock connection. ie, /tmp/redis.sock */ redisModule.info(redisModule.client, function (err, info) {
cxn = redis.createClient(nconf.get('redis:host'), options); if (err) {
} else { return callback(err);
/* Else, connect over tcp/ip */
cxn = redis.createClient(nconf.get('redis:port'), nconf.get('redis:host'), options);
} }
cxn.on('error', function (err) { if (semver.lt(info.redis_version, '2.8.9')) {
winston.error(err.stack); return callback(new Error('Your Redis version is not new enough to support NodeBB, please upgrade Redis to v2.8.9 or higher.'));
process.exit(1);
});
if (nconf.get('redis:password')) {
cxn.auth(nconf.get('redis:password'));
} }
var dbIdx = parseInt(nconf.get('redis:database'), 10); callback();
if (dbIdx) { });
cxn.select(dbIdx, function (error) { };
if (error) {
winston.error('NodeBB could not connect to your Redis database. Redis returned the following error: ' + error.message); redisModule.close = function () {
process.exit(); redisClient.quit();
} };
});
redisModule.info = function (cxn, callback) {
if (!cxn) {
return callback();
}
cxn.info(function (err, data) {
if (err) {
return callback(err);
} }
return cxn; var lines = data.toString().split('\r\n').sort();
}; var redisData = {};
lines.forEach(function (line) {
module.createIndices = function (callback) { var parts = line.split(':');
setImmediate(callback); if (parts[1]) {
}; redisData[parts[0]] = parts[1];
module.checkCompatibility = function (callback) {
module.info(module.client, function (err, info) {
if (err) {
return callback(err);
} }
if (semver.lt(info.redis_version, '2.8.9')) {
return callback(new Error('Your Redis version is not new enough to support NodeBB, please upgrade Redis to v2.8.9 or higher.'));
}
callback();
}); });
};
module.close = function () { redisData.raw = JSON.stringify(redisData, null, 4);
redisClient.quit(); redisData.redis = true;
};
module.info = function (cxn, callback) {
if (!cxn) {
return callback();
}
cxn.info(function (err, data) {
if (err) {
return callback(err);
}
var lines = data.toString().split('\r\n').sort();
var redisData = {};
lines.forEach(function (line) {
var parts = line.split(':');
if (parts[1]) {
redisData[parts[0]] = parts[1];
}
});
redisData.raw = JSON.stringify(redisData, null, 4);
redisData.redis = true;
callback(null, redisData);
});
};
module.helpers = module.helpers || {}; callback(null, redisData);
module.helpers.redis = require('./redis/helpers'); });
}(exports)); };
redisModule.helpers = redisModule.helpers || {};
redisModule.helpers.redis = require('./redis/helpers');

Loading…
Cancel
Save