UNPKG

nyx_server

Version:

Node内容发布

39 lines (34 loc) 1.39 kB
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;