diff --git a/lib/wrench.js b/lib/wrench.js index a293fdd..6b13d20 100644 --- a/lib/wrench.js +++ b/lib/wrench.js @@ -252,6 +252,7 @@ exports.copyDirSyncRecursive = function(sourceDir, newDirLocation, opts) { var files = fs.readdirSync(sourceDir); var hasFilter = opts.filter || opts.include || opts.exclude; var preserveFiles = opts.preserveFiles === true; + var preserveTimestamps = opts.preserveTimestamps === true; for(var i = 0; i < files.length; i++) { // ignores all files or directories which match the RegExp in opts.filter @@ -274,6 +275,9 @@ exports.copyDirSyncRecursive = function(sourceDir, newDirLocation, opts) { fs.writeFileSync(destFile, contents); var stat = fs.lstatSync(srcFile); fs.chmodSync(destFile, stat.mode); + if (preserveTimestamps) { + fs.utimesSync(destFile, stat.atime, stat.mtime) + } }; if(currFile.isDirectory()) { diff --git a/readme.md b/readme.md index a4e0242..2d646d0 100644 --- a/readme.md +++ b/readme.md @@ -65,6 +65,7 @@ wrench.copyDirSyncRecursive('directory_to_copy', 'location_where_copy_should_end forceDelete: bool, // Whether to overwrite existing directory or not excludeHiddenUnix: bool, // Whether to copy hidden Unix files or not (preceding .) preserveFiles: bool, // If we're overwriting something and the file already exists, keep the existing + preserveTimestamps: bool, // Preserve the mtime and atime when copying files inflateSymlinks: bool, // Whether to follow symlinks or not when copying files filter: regexpOrFunction, // A filter to match files against; if matches, do nothing (exclude). whitelist: bool, // if true every file or directory which doesn't match filter will be ignored