Use copy+unlink if rename fails during install #1345

This commit is contained in:
Lovell Fuller 2018-08-20 15:14:31 +01:00
parent a15a9b956b
commit ece111280b
2 changed files with 14 additions and 1 deletions

View File

@ -4,6 +4,11 @@
Requires libvips v8.6.1.
#### v0.20.7 - TBD
* Use copy+unlink if rename operation fails during installation.
[#1345](https://github.com/lovell/sharp/issues/1345)
#### v0.20.6 - 20<sup>th</sup> August 2018
* Add removeAlpha operation to remove alpha channel, if any.

View File

@ -9,6 +9,7 @@ const npmLog = require('npmlog');
const semver = require('semver');
const simpleGet = require('simple-get');
const tar = require('tar');
const copyFileSync = require('fs-copy-file-sync');
const agent = require('../lib/agent');
const libvips = require('../lib/libvips');
@ -82,7 +83,14 @@ try {
response.pipe(tmpFile);
});
tmpFile.on('close', function () {
try {
// Attempt to rename
fs.renameSync(tarPathTemp, tarPathCache);
} catch (err) {
// Fall back to copy and unlink
copyFileSync(tarPathTemp, tarPathCache);
fs.unlinkSync(tarPathTemp);
}
extractTarball(tarPathCache);
});
}