1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/rocketchat_ynh.git synced 2024-09-03 20:16:25 +02:00
rocketchat_ynh/sources/programs/server/packages/rocketchat_tutum.js
2016-04-29 16:32:48 +02:00

83 lines
6.7 KiB
JavaScript

(function () {
/* Imports */
var Meteor = Package.meteor.Meteor;
var RocketChat = Package['rocketchat:lib'].RocketChat;
var TAPi18next = Package['tap:i18n'].TAPi18next;
var TAPi18n = Package['tap:i18n'].TAPi18n;
/* Package-scope variables */
var __coffeescriptShare;
(function(){
//////////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// packages/rocketchat_tutum/startup.coffee.js //
// //
//////////////////////////////////////////////////////////////////////////////////////////////////////////
//
__coffeescriptShare = typeof __coffeescriptShare === 'object' ? __coffeescriptShare : {}; var share = __coffeescriptShare;
// 1
/* Examples // 1
//
DOCKERCLOUD_REDIS_HOST=redis://:password@host:6379 //
DOCKERCLOUD_CLIENT_NAME=mywebsite //
DOCKERCLOUD_CLIENT_HOST=mywebsite.dotcloud.com //
*/ //
var client, day, inactiveDays, redis, terminateAppIfInactive; // 1
//
if (process.env.DOCKERCLOUD_REDIS_HOST != null) { // 8
redis = Npm.require('redis'); // 9
client = redis.createClient(process.env.DOCKERCLOUD_REDIS_HOST); // 9
client.del("frontend:" + process.env.DOCKERCLOUD_CLIENT_HOST); // 9
client.rpush("frontend:" + process.env.DOCKERCLOUD_CLIENT_HOST, process.env.DOCKERCLOUD_CLIENT_NAME);
client.rpush("frontend:" + process.env.DOCKERCLOUD_CLIENT_HOST, "http://" + (process.env.DOCKERCLOUD_IP_ADDRESS.split('/')[0]) + ":3000");
process.on('SIGTERM', function() { // 9
return client.expire("frontend:" + process.env.DOCKERCLOUD_CLIENT_HOST, 90); //
}); //
day = 86400000; // 9
inactiveDays = 30; // 9
if (!isNaN(parseInt(process.env.DOCKERCLOUD_REDIS_INACTIVE_DAYS))) { // 25
inactiveDays = parseInt(process.env.DOCKERCLOUD_REDIS_INACTIVE_DAYS); // 26
} //
terminateAppIfInactive = function() { // 9
var subscription; // 29
subscription = RocketChat.models.Subscriptions.findOne({ // 29
ls: { // 29
$exists: true // 29
} //
}, { //
sort: { // 29
ls: -1 // 29
}, //
fields: { // 29
ls: 1 // 29
} //
}); //
if ((subscription == null) || Date.now() - subscription.ls > inactiveDays * day) { // 31
client.del("frontend:" + process.env.DOCKERCLOUD_CLIENT_HOST); // 32
return process.exit(0); //
} //
}; //
Meteor.setInterval(function() { // 9
var now; // 36
now = new Date(); // 36
if (now.getHours() === 4 && now.getMinutes() === 0) { // 37
return terminateAppIfInactive(); //
} //
}, 60000); //
} //
//
//////////////////////////////////////////////////////////////////////////////////////////////////////////
}).call(this);
/* Exports */
if (typeof Package === 'undefined') Package = {};
Package['rocketchat:tutum'] = {};
})();
//# sourceMappingURL=rocketchat_tutum.js.map