timers3000
Version:
Provides a graphical interface in your browser to create and manage incremental timers for your daily tasks.
86 lines (78 loc) • 2.49 kB
JavaScript
var pjson = require('../../package.json')
, fs = require('fs');
/**
* Does nothing
* shamelessly copypasted from the ungit source :S
*/
function noop() {}
/**
* Check npm for the latest version of timers3000
* shamelessly copypasted from the ungit source :S
* EDIT: Not so much c+p'd anymore
*/
var npmconf, RegClient, lastUpdateCheck ;
exports.updateNeeded = function(callback) {
//check once per minute max
var now = Date.now();
if(!lastUpdateCheck) lastUpdateCheck = now-60001;
if(now - lastUpdateCheck < 60000){
callback(null,false,pjson.version);
}else{
lastUpdateCheck = now;
if (!npmconf) npmconf = require('npmconf');
if (!RegClient) RegClient = require('npm-registry-client');
npmconf.load({}, function(err, config) {
if (err) return callback(err);
var client = new RegClient(config);
options = {timeout:1000};
client.get('https://registry.npmjs.org/timers3000', options, function (err, data, raw, res) {
if (err) return callback(err);
var versions = Object.keys(data.versions);
var currentVersion = pjson.version;
var latestVersion = versions[versions.length - 1];
var result = currentVersion < latestVersion;
callback(null, result, latestVersion);
})
});
}
return;
}
/**
* Change the databasepath
* @param {String} key The properties name
* @param {String} value The new value
* @param {Function} callback The clients callbackfunction
*/
exports.changePreference = function(key, value, callback){
switch(key){
case "database" : {
//If the path exists
if(fs.existsSync(value)){
//and is a directory
if(fs.lstatSync(value).isDirectory()){
//apply changes
process.env.TIMERDB = value;
break;
}else{
return callback("Path is not a directory.",null);
}
}else{
return callback("Path doesn't exist.",null);
}
}
case "port" : process.env.TIMERPORT = value;break;
case "sortingKey" : process.env.TIMERSORTINGKEY = value;break;
}
newConfig = {
"database" : process.env.TIMERDB,
"port" : process.env.TIMERPORT,
"sortingKey" : process.env.TIMERSORTINGKEY
}
fs.writeFile(__dirname + '/../../config/config.json', JSON.stringify(newConfig, null, 4), function(err) {
if(err) {
callback(err,null)
} else {
callback(err,true)
}
});
}