This is an automated email from the ASF dual-hosted git repository. raphinesse pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cordova-lib.git
The following commit(s) were added to refs/heads/master by this push: new 3079853 Dereference possible symlinks when copying plugin (#705) 3079853 is described below commit 3079853c0ac2a60c7c38db87fc1996ab3cf1b9b8 Author: Oliver Salzburg <oliver.salzb...@gmail.com> AuthorDate: Tue Sep 25 13:06:17 2018 +0200 Dereference possible symlinks when copying plugin (#705) When `npm install`ing a local plugin, npm will create a symlink to the source. When we then attempt to copy that symlink, the result will be invalid on Windows OS. Thus, we need to dereference the link/junction and create a proper copy. Fixes #700 Fixes #704 --- integration-tests/plugman_fetch.spec.js | 6 +++--- src/plugman/fetch.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/integration-tests/plugman_fetch.spec.js b/integration-tests/plugman_fetch.spec.js index e16a337..81ef6aa 100644 --- a/integration-tests/plugman_fetch.spec.js +++ b/integration-tests/plugman_fetch.spec.js @@ -85,12 +85,12 @@ describe('fetch', function () { it('Test 001 : should copy locally-available plugin to plugins directory', function () { return fetch(test_plugin, temp).then(function () { - expect(fs.copySync).toHaveBeenCalledWith(path.join(test_plugin), path.join(temp, test_plugin_id)); + expect(fs.copySync).toHaveBeenCalledWith(path.join(test_plugin), path.join(temp, test_plugin_id), jasmine.objectContaining({dereference: true})); }); }); it('Test 002 : should copy locally-available plugin to plugins directory when adding a plugin with searchpath argument', function () { return fetch(test_plugin_id, temp, { searchpath: test_plugin_searchpath }).then(function () { - expect(fs.copySync).toHaveBeenCalledWith(path.join(test_plugin), path.join(temp, test_plugin_id)); + expect(fs.copySync).toHaveBeenCalledWith(path.join(test_plugin), path.join(temp, test_plugin_id), jasmine.objectContaining({dereference: true})); }); }); it('Test 003 : should create a symlink if used with `link` param', function () { @@ -129,7 +129,7 @@ describe('fetch', function () { }); it('Test 027 : should copy locally-available plugin to plugins directory', function () { return fetch(test_pkgjson_plugin, temp).then(function () { - expect(fs.copySync).toHaveBeenCalledWith(path.join(test_pkgjson_plugin), path.join(temp, 'pkgjson-test-plugin')); + expect(fs.copySync).toHaveBeenCalledWith(path.join(test_pkgjson_plugin), path.join(temp, 'pkgjson-test-plugin'), jasmine.objectContaining({dereference: true})); expect(fetchCalls).toBe(1); }); }); diff --git a/src/plugman/fetch.js b/src/plugman/fetch.js index d52bae7..86d3ea3 100644 --- a/src/plugman/fetch.js +++ b/src/plugman/fetch.js @@ -289,7 +289,7 @@ function copyPlugin (pinfo, plugins_dir, link) { fs.symlinkSync(fixedPath, dest, 'junction'); } else { events.emit('verbose', 'Copying plugin "' + plugin_dir + '" => "' + dest + '"'); - fs.copySync(plugin_dir, dest); + fs.copySync(plugin_dir, dest, {dereference: true}); } return dest; } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cordova.apache.org For additional commands, e-mail: commits-h...@cordova.apache.org