|
|
|
@ -1,14 +1,16 @@
|
|
|
|
|
'use strict';
|
|
|
|
|
|
|
|
|
|
(function (module) {
|
|
|
|
|
var winston = require('winston');
|
|
|
|
|
var nconf = require('nconf');
|
|
|
|
|
var semver = require('semver');
|
|
|
|
|
var session = require('express-session');
|
|
|
|
|
var redis;
|
|
|
|
|
var redisClient;
|
|
|
|
|
|
|
|
|
|
module.questions = [
|
|
|
|
|
var _ = require('underscore');
|
|
|
|
|
var winston = require('winston');
|
|
|
|
|
var nconf = require('nconf');
|
|
|
|
|
var semver = require('semver');
|
|
|
|
|
var session = require('express-session');
|
|
|
|
|
var redis = require('redis');
|
|
|
|
|
var redisClient;
|
|
|
|
|
|
|
|
|
|
var redisModule = module.exports;
|
|
|
|
|
|
|
|
|
|
redisModule.questions = [
|
|
|
|
|
{
|
|
|
|
|
name: 'redis:host',
|
|
|
|
|
description: 'Host IP or address of your Redis instance',
|
|
|
|
@ -31,46 +33,40 @@
|
|
|
|
|
description: 'Which database to use (0..n)',
|
|
|
|
|
default: nconf.get('redis:database') || 0,
|
|
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
module.init = function (callback) {
|
|
|
|
|
try {
|
|
|
|
|
redis = require('redis');
|
|
|
|
|
} catch (err) {
|
|
|
|
|
winston.error('Unable to initialize Redis! Is Redis installed? Error :' + err.message);
|
|
|
|
|
process.exit();
|
|
|
|
|
}
|
|
|
|
|
redisModule.init = function (callback) {
|
|
|
|
|
|
|
|
|
|
redisClient = module.connect();
|
|
|
|
|
redisClient = redisModule.connect();
|
|
|
|
|
|
|
|
|
|
module.client = redisClient;
|
|
|
|
|
redisModule.client = redisClient;
|
|
|
|
|
|
|
|
|
|
require('./redis/main')(redisClient, module);
|
|
|
|
|
require('./redis/hash')(redisClient, module);
|
|
|
|
|
require('./redis/sets')(redisClient, module);
|
|
|
|
|
require('./redis/sorted')(redisClient, module);
|
|
|
|
|
require('./redis/list')(redisClient, module);
|
|
|
|
|
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();
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
module.initSessionStore = function (callback) {
|
|
|
|
|
redisModule.initSessionStore = function (callback) {
|
|
|
|
|
var meta = require('../meta');
|
|
|
|
|
var sessionStore = require('connect-redis')(session);
|
|
|
|
|
|
|
|
|
|
module.sessionStore = new sessionStore({
|
|
|
|
|
client: module.client,
|
|
|
|
|
redisModule.sessionStore = new sessionStore({
|
|
|
|
|
client: redisModule.client,
|
|
|
|
|
ttl: meta.getSessionTTLSeconds(),
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (typeof callback === 'function') {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
module.connect = function (options) {
|
|
|
|
|
redisModule.connect = function (options) {
|
|
|
|
|
var redis_socket_or_host = nconf.get('redis:host');
|
|
|
|
|
var cxn;
|
|
|
|
|
|
|
|
|
@ -79,6 +75,7 @@
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
options = options || {};
|
|
|
|
|
|
|
|
|
|
if (nconf.get('redis:password')) {
|
|
|
|
|
options.auth_pass = nconf.get('redis:password');
|
|
|
|
|
}
|
|
|
|
@ -111,14 +108,14 @@
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return cxn;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
module.createIndices = function (callback) {
|
|
|
|
|
redisModule.createIndices = function (callback) {
|
|
|
|
|
setImmediate(callback);
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
module.checkCompatibility = function (callback) {
|
|
|
|
|
module.info(module.client, function (err, info) {
|
|
|
|
|
redisModule.checkCompatibility = function (callback) {
|
|
|
|
|
redisModule.info(redisModule.client, function (err, info) {
|
|
|
|
|
if (err) {
|
|
|
|
|
return callback(err);
|
|
|
|
|
}
|
|
|
|
@ -129,13 +126,13 @@
|
|
|
|
|
|
|
|
|
|
callback();
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
module.close = function () {
|
|
|
|
|
redisModule.close = function () {
|
|
|
|
|
redisClient.quit();
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
module.info = function (cxn, callback) {
|
|
|
|
|
redisModule.info = function (cxn, callback) {
|
|
|
|
|
if (!cxn) {
|
|
|
|
|
return callback();
|
|
|
|
|
}
|
|
|
|
@ -158,9 +155,7 @@
|
|
|
|
|
|
|
|
|
|
callback(null, redisData);
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
module.helpers = module.helpers || {};
|
|
|
|
|
module.helpers.redis = require('./redis/helpers');
|
|
|
|
|
}(exports));
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
redisModule.helpers = redisModule.helpers || {};
|
|
|
|
|
redisModule.helpers.redis = require('./redis/helpers');
|
|
|
|
|