diff --git a/lib/server/ischanged.js b/lib/server/ischanged.js index 33016d72..cc759e43 100644 --- a/lib/server/ischanged.js +++ b/lib/server/ischanged.js @@ -7,6 +7,8 @@ Util = require('../util'), time = require('./timem'), + mkdir = fs.mkdir, + WIN = process.platform === 'win32', Times = {}, @@ -15,7 +17,7 @@ NAME_SHORT = DIR + 'changes', NAME = NAME_SHORT + '.json'; - makeDir(function(error) { + makeDir(DIR, function(error) { if (!error) Util.exec.try(function() { Times = require(NAME_SHORT); @@ -23,24 +25,30 @@ }); function getDir() { - var dir; + var dir, + sign = '-'; + + Util.exec.try(function() { + mkdir = require('mkdirp'); + sign = '/'; + }); if (os.tmpdir) { dir = os.tmpdir(); dir += '/ischanged'; if (!WIN) - dir += '-' + process.getuid() + '/'; + dir += sign + process.getuid() + '/'; } return dir; } - function makeDir(callback) { + function makeDir(dir, callback) { var ANY_MASK = 0, umask = process.umask(ANY_MASK); - fs.mkdir(DIR, function(error) { + mkdir(dir, function(error) { process.umask(umask); if (error && error.code === 'EEXIST')