nyx_server
Version:
Node内容发布
39 lines (34 loc) • 1.39 kB
JavaScript
var os = require('os');
var path = require('path');
var osenv = require('osenv');
var crypto = require('crypto');
function generateFakeUser() {
var uid = process.pid + '-' + Date.now() + '-' + Math.floor(Math.random() * 1000000);
return crypto.createHash('md5').update(uid).digest('hex');
}
// Assume XDG defaults
// See: http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
var paths = {
projects_cache: process.env.PROJECTS_CACHE_HOME,
chips_cache: process.env.CHIPS_CACHE_HOME
};
// Guess some needed properties based on the user OS
var user = (osenv.user() || generateFakeUser()).replace(/\\/g, '-');
var tmp = path.join(os.tmpdir ? os.tmpdir() : os.tmpDir(), user);
var home = osenv.home();
var base;
// Fallbacks for windows
if (process.platform === 'win32') {
base = path.resolve(process.env.APPDATA || home || tmp);
base = path.join(base, 'nyx' , 'cache');
paths.projects_cache = paths.projects_cache || path.join(base, 'projects');
paths.chips_cache = paths.chips_cache || path.join(base, 'chips');
// Fallbacks for other operating systems
} else {
base = path.resolve(home || tmp);
base = path.join(base,'.cache' , 'nyx')
paths.projects_cache = paths.projects_cache || path.join(base, 'projects');
paths.chips_cache = paths.chips_cache || path.join(base, 'chips');
}
paths.base = base;
module.exports = paths;