tempdir: use os.tmpDir when possible

This commit is contained in:
Stephen Mathieson 2013-06-08 18:57:19 -04:00
parent 3b35d6ff12
commit 0ce07eee07
2 changed files with 22 additions and 13 deletions

View File

@ -1698,18 +1698,22 @@ function tempDir() {
if (state.tempDir)
return state.tempDir; // from cache
state.tempDir = writeableDir(process.env['TMPDIR']) ||
writeableDir(process.env['TEMP']) ||
writeableDir(process.env['TMP']) ||
writeableDir(process.env['Wimp$ScrapDir']) || // RiscOS
writeableDir('C:\\TEMP') || // Windows
writeableDir('C:\\TMP') || // Windows
writeableDir('\\TEMP') || // Windows
writeableDir('\\TMP') || // Windows
writeableDir('/tmp') ||
writeableDir('/var/tmp') ||
writeableDir('/usr/tmp') ||
writeableDir('.'); // last resort
state.tempDir = os.tmpDir ?
// node 0.8+ has `os.tmpDir()`
os.tmpDir() :
// back-compat for older node installs
writeableDir(process.env['TMPDIR']) ||
writeableDir(process.env['TEMP']) ||
writeableDir(process.env['TMP']) ||
writeableDir(process.env['Wimp$ScrapDir']) || // RiscOS
writeableDir('C:\\TEMP') || // Windows
writeableDir('C:\\TMP') || // Windows
writeableDir('\\TEMP') || // Windows
writeableDir('\\TMP') || // Windows
writeableDir('/tmp') ||
writeableDir('/var/tmp') ||
writeableDir('/usr/tmp') ||
writeableDir('.'); // last resort
return state.tempDir;
}

View File

@ -2,7 +2,8 @@ var shell = require('..');
var assert = require('assert'),
path = require('path'),
fs = require('fs');
fs = require('fs'),
os = require('os');
// Node shims for < v0.7
fs.existsSync = fs.existsSync || path.existsSync;
@ -21,6 +22,10 @@ shell.mkdir('tmp');
//
var tmp = shell.tempdir();
// node 0.8+
if (os.tmpDir) {
assert.equal(os.tmpDir(), tmp);
}
assert.equal(shell.error(), null);
assert.equal(fs.existsSync(tmp), true);