Merge pull request #79 from xzyfer/fix/sync-absolute-symlink

Fix inflateSymlinks flag errors for absolute symlinks
This commit is contained in:
Ryan McGrath 2014-02-10 14:18:19 +08:00
commit 666e0c7e75
2 changed files with 40 additions and 3 deletions

View file

@ -285,18 +285,19 @@ exports.copyDirSyncRecursive = function(sourceDir, newDirLocation, opts) {
exports.copyDirSyncRecursive(_path.join(sourceDir, files[i]), _path.join(newDirLocation, files[i]), opts);
} else if(currFile.isSymbolicLink()) {
var symlinkFull = fs.readlinkSync(_path.join(sourceDir, files[i]));
symlinkFull = _path.resolve(fs.realpathSync(sourceDir), symlinkFull);
if (typeof opts !== 'undefined' && !opts.inflateSymlinks) {
fs.symlinkSync(symlinkFull, _path.join(newDirLocation, files[i]));
continue;
}
var tmpCurrFile = fs.lstatSync(_path.join(sourceDir, symlinkFull));
var tmpCurrFile = fs.lstatSync(symlinkFull);
if (tmpCurrFile.isDirectory()) {
exports.copyDirSyncRecursive(_path.join(sourceDir, symlinkFull), _path.join(newDirLocation, files[i]), opts);
exports.copyDirSyncRecursive(symlinkFull, _path.join(newDirLocation, files[i]), opts);
} else {
/* At this point, we've hit a file actually worth copying... so copy it on over. */
fCopyFile(_path.join(sourceDir, symlinkFull), _path.join(newDirLocation, files[i]));
fCopyFile(symlinkFull, _path.join(newDirLocation, files[i]));
}
} else {
/* At this point, we've hit a file actually worth copying... so copy it on over. */