You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ag...@apache.org on 2015/05/05 21:50:27 UTC
cordova-lib git commit: CB-8757 Resolve symlinks in order to avoid
relative path issues (close #212)
Repository: cordova-lib
Updated Branches:
refs/heads/master cf037c850 -> 7f38e617f
CB-8757 Resolve symlinks in order to avoid relative path issues (close #212)
Project: http://git-wip-us.apache.org/repos/asf/cordova-lib/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-lib/commit/7f38e617
Tree: http://git-wip-us.apache.org/repos/asf/cordova-lib/tree/7f38e617
Diff: http://git-wip-us.apache.org/repos/asf/cordova-lib/diff/7f38e617
Branch: refs/heads/master
Commit: 7f38e617f707b36c921984dd8b90d874579627e1
Parents: cf037c8
Author: Martin Bektchiev <ma...@telerik.com>
Authored: Tue May 5 18:37:14 2015 +0300
Committer: Andrew Grieve <ag...@chromium.org>
Committed: Tue May 5 15:49:44 2015 -0400
----------------------------------------------------------------------
cordova-lib/spec-plugman/install.spec.js | 2 +-
cordova-lib/src/cordova/util.js | 10 ++++++++++
cordova-lib/src/plugman/install.js | 7 +++++++
cordova-lib/src/plugman/uninstall.js | 8 ++++++++
4 files changed, 26 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/7f38e617/cordova-lib/spec-plugman/install.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-plugman/install.spec.js b/cordova-lib/spec-plugman/install.spec.js
index 1266449..75efcd7 100644
--- a/cordova-lib/spec-plugman/install.spec.js
+++ b/cordova-lib/spec-plugman/install.spec.js
@@ -36,7 +36,7 @@ var install = require('../src/plugman/install'),
spec = __dirname,
done = false,
srcProject = path.join(spec, 'projects', 'android_install'),
- temp_dir = path.join(os.tmpdir(), 'plugman-test'),
+ temp_dir = path.join(fs.realpathSync(os.tmpdir()), 'plugman-test'),
project = path.join(temp_dir, 'android_install'),
plugins_dir = path.join(spec, 'plugins'),
plugins_install_dir = path.join(project, 'cordova', 'plugins'),
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/7f38e617/cordova-lib/src/cordova/util.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/cordova/util.js b/cordova-lib/src/cordova/util.js
index d6e768e..2707b85 100644
--- a/cordova-lib/src/cordova/util.js
+++ b/cordova-lib/src/cordova/util.js
@@ -53,6 +53,7 @@ exports.preProcessOptions = preProcessOptions;
exports.addModuleProperty = addModuleProperty;
exports.getOrigWorkingDirectory = getOrigWorkingDirectory;
exports.fixRelativePath = fixRelativePath;
+exports.convertToRealPathSafe = convertToRealPathSafe;
exports.isDirectory = isDirectory;
exports.isUrl = isUrl;
@@ -143,6 +144,15 @@ function fixRelativePath(value, /* optional */ cwd) {
return ret;
}
+// Resolve any symlinks in order to avoid relative path issues. See https://issues.apache.org/jira/browse/CB-8757
+function convertToRealPathSafe(path) {
+ if (path && fs.existsSync(path)) {
+ return fs.realpathSync(path);
+ }
+
+ return path;
+}
+
// Recursively deletes .svn folders from a target path
function deleteSvnFolders(dir) {
var contents = fs.readdirSync(dir);
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/7f38e617/cordova-lib/src/plugman/install.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/plugman/install.js b/cordova-lib/src/plugman/install.js
index ca15809..169a5d3 100644
--- a/cordova-lib/src/plugman/install.js
+++ b/cordova-lib/src/plugman/install.js
@@ -66,6 +66,9 @@ var PluginInfoProvider = require('../PluginInfoProvider');
// possible options: subdir, cli_variables, www_dir
// Returns a promise.
module.exports = function installPlugin(platform, project_dir, id, plugins_dir, options) {
+ project_dir = cordovaUtil.convertToRealPathSafe(project_dir);
+ plugins_dir = cordovaUtil.convertToRealPathSafe(plugins_dir);
+
options = options || {};
options.is_top_level = true;
plugins_dir = plugins_dir || path.join(project_dir, 'cordova', 'plugins');
@@ -246,6 +249,10 @@ function getEngines(pluginInfo, platform, project_dir, plugin_dir){
// Returns a promise.
module.exports.runInstall = runInstall;
function runInstall(actions, platform, project_dir, plugin_dir, plugins_dir, options) {
+ project_dir = cordovaUtil.convertToRealPathSafe(project_dir);
+ plugin_dir = cordovaUtil.convertToRealPathSafe(plugin_dir);
+ plugins_dir = cordovaUtil.convertToRealPathSafe(plugins_dir);
+
options = options || {};
options.graph = options.graph || new dep_graph();
options.pluginInfoProvider = options.pluginInfoProvider || new PluginInfoProvider();
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/7f38e617/cordova-lib/src/plugman/uninstall.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/plugman/uninstall.js b/cordova-lib/src/plugman/uninstall.js
index 341a97b..ea8b087 100644
--- a/cordova-lib/src/plugman/uninstall.js
+++ b/cordova-lib/src/plugman/uninstall.js
@@ -43,6 +43,9 @@ var PluginInfoProvider = require('../PluginInfoProvider');
// Returns a promise.
module.exports = uninstall;
function uninstall(platform, project_dir, id, plugins_dir, options) {
+ project_dir = cordovaUtil.convertToRealPathSafe(project_dir);
+ plugins_dir = cordovaUtil.convertToRealPathSafe(plugins_dir);
+
options = options || {};
options.is_top_level = true;
options.pluginInfoProvider = options.pluginInfoProvider || new PluginInfoProvider();
@@ -62,6 +65,9 @@ function uninstall(platform, project_dir, id, plugins_dir, options) {
// Returns a promise.
module.exports.uninstallPlatform = function(platform, project_dir, id, plugins_dir, options) {
+ project_dir = cordovaUtil.convertToRealPathSafe(project_dir);
+ plugins_dir = cordovaUtil.convertToRealPathSafe(plugins_dir);
+
options = options || {};
options.is_top_level = true;
options.pluginInfoProvider = options.pluginInfoProvider || new PluginInfoProvider();
@@ -91,6 +97,8 @@ module.exports.uninstallPlatform = function(platform, project_dir, id, plugins_d
// Returns a promise.
module.exports.uninstallPlugin = function(id, plugins_dir, options) {
+ plugins_dir = cordovaUtil.convertToRealPathSafe(plugins_dir);
+
options = options || {};
options.pluginInfoProvider = options.pluginInfoProvider || new PluginInfoProvider();
var pluginInfoProvider = options.pluginInfoProvider;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org