You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/10/04 22:15:01 UTC
[jira] [Commented] (CB-12844) Escape backslashes when creating a
PBXShellScriptBuildPhase
[ https://issues.apache.org/jira/browse/CB-12844?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16192148#comment-16192148 ]
ASF GitHub Bot commented on CB-12844:
-------------------------------------
Github user stevengill commented on the issue:
https://github.com/apache/cordova-node-xcode/pull/2
Hey @sruthakeerthikotla!
Could you add a test to the pr?
> Escape backslashes when creating a PBXShellScriptBuildPhase
> -----------------------------------------------------------
>
> Key: CB-12844
> URL: https://issues.apache.org/jira/browse/CB-12844
> Project: Apache Cordova
> Issue Type: Bug
> Components: cordova-node-xcode
> Affects Versions: 7.0.0, 6.4.0, 6.5.0
> Environment: MacOS 10.12.4
> Xcode 8.3.2 (8E2002)
> Cordova 6.5.0
> node-xcode 0.9.0
> Reporter: Nicholas Rawlings
> Assignee: Anis Kadri
> Priority: Minor
>
> Hooks can use the `node-xcode` package, which was contributed to the Cordova project about a month ago, to modify an Xcode project. When using `pbxProject.addBuildPhase()` to add a new "Run Script" phase, backslashes in the passed script are not properly escaped. Unescaped backslashes can break the expected behavior of the shell script and result in a malformed *.pbxproj file.
> The solution should be as simple as modifying the `pbxShellScriptBuildPhaseObj()` function to replace unescaped backslashes with escaped ones in the same way that double quote characters are handled:
> ```javascript
> function pbxShellScriptBuildPhaseObj(obj, options, phaseName) {
> obj.name = '"' + phaseName + '"';
> obj.inputPaths = options.inputPaths || [];
> obj.outputPaths = options.outputPaths || [];
> obj.shellPath = options.shellPath;
> obj.shellScript = '"' + options.shellScript.replace(/"/g, '\\"').replace(/\\/g, '\\\\') + '"';
> return obj;
> }
> ```
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org