From 19b0c65e4c685a8c7ec15257501f160c3b0357c5 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 31 Mar 2016 08:45:47 +0200 Subject: [PATCH 1/2] Use fs-extra instead of wrench --- package.json | 3 +-- tasks/test-coverage.js | 23 ++++++++--------------- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index 1343b30b9c..1e95a6620e 100644 --- a/package.json +++ b/package.json @@ -67,8 +67,7 @@ "proj4": "2.3.14", "resemblejs": "2.2.0", "sinon": "1.17.3", - "slimerjs": "0.906.1", - "wrench": "1.5.8" + "slimerjs": "0.906.1" }, "eslintConfig": { "extends": "openlayers", diff --git a/tasks/test-coverage.js b/tasks/test-coverage.js index a11eef1285..04468969ec 100644 --- a/tasks/test-coverage.js +++ b/tasks/test-coverage.js @@ -8,8 +8,8 @@ */ var fs = require('fs'); +var fse = require('fs-extra'); var istanbul = require('istanbul'); -var wrench = require('wrench'); var path = require('path'); var glob = require('glob'); @@ -28,17 +28,10 @@ var collector = new istanbul.Collector(); // General options used for the resource shuffling / directory copying var copyOpts = { - // Whether to overwrite existing directory or not - forceDelete: true, - // Whether to copy hidden Unix files or not (preceding .) - excludeHiddenUnix: false, - // If we're overwriting something and the file already exists, keep the - // existing - preserveFiles: false, + // Overwrite existing file or directory + clobber: true, // Preserve the mtime and atime when copying files - preserveTimestamps: true, - // Whether to follow symlinks or not when copying files - inflateSymlinks: false + preserveTimestamps: true }; /** @@ -87,9 +80,9 @@ var setupBackupAndInstrumentationDir = function() { } log('• copy src files to backup folder'); - wrench.copyDirSyncRecursive(dir, backupDir, copyOpts); + fse.copySync(dir, backupDir, copyOpts); log('• copy src files to instrumentation folder'); - wrench.copyDirSyncRecursive(dir, instrumentedDir, copyOpts); + fse.copySync(dir, instrumentedDir, copyOpts); }; /** @@ -99,7 +92,7 @@ var setupBackupAndInstrumentationDir = function() { */ var revertBackupAndInstrumentationDir = function() { log('• copy original src back to src folder'); - wrench.copyDirSyncRecursive(backupDir, dir, copyOpts); + fse.copySync(backupDir, dir, copyOpts); log('• delete backup directory'); deleteFolderRecursive(backupDir); log('• delete instrumentation directory'); @@ -161,7 +154,7 @@ var foundAllJavaScriptSourceFiles = function(err, files) { log(' • done. ' + cnt + ' files instrumented'); log('• copy instrumented src back to src folder'); - wrench.copyDirSyncRecursive(instrumentedDir, dir, copyOpts); + fse.copySync(instrumentedDir, dir, copyOpts); log('• run test suite on instrumented code'); runTestsuite({coverage: true, reporter: 'dot'}, collectAndWriteCoverageData); From 03d78cdd1c3eef3a29991a80d997ff6a74ea62e5 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 31 Mar 2016 09:52:26 +0200 Subject: [PATCH 2/2] Use removeSync function from fs-extra --- tasks/test-coverage.js | 26 ++------------------------ 1 file changed, 2 insertions(+), 24 deletions(-) diff --git a/tasks/test-coverage.js b/tasks/test-coverage.js index 04468969ec..61a8141059 100644 --- a/tasks/test-coverage.js +++ b/tasks/test-coverage.js @@ -42,28 +42,6 @@ var log = function(msg) { process.stdout.write(msg + '\n'); }; - -/** - * A utility method to recursively delete a non-empty folder. - * - * See http://www.geedew.com/remove-a-directory-that-is-not-empty-in-nodejs/ - * adjusted to use path.join - * @param {string} p Path to the directory. - */ -var deleteFolderRecursive = function(p) { - if (fs.existsSync(p)) { - fs.readdirSync(p).forEach(function(file,index) { - var curPath = path.join(p, file); - if (fs.lstatSync(curPath).isDirectory()) { // recurse - deleteFolderRecursive(curPath); - } else { // delete file - fs.unlinkSync(curPath); - } - }); - fs.rmdirSync(p); - } -}; - /** * Creates folders for backup and instrumentation and copies the contents of the * current src folder into them. @@ -94,9 +72,9 @@ var revertBackupAndInstrumentationDir = function() { log('• copy original src back to src folder'); fse.copySync(backupDir, dir, copyOpts); log('• delete backup directory'); - deleteFolderRecursive(backupDir); + fse.removeSync(backupDir); log('• delete instrumentation directory'); - deleteFolderRecursive(instrumentedDir); + fse.removeSync(instrumentedDir); };