[ 
https://issues.apache.org/jira/browse/CB-14033?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16525724#comment-16525724
 ] 

ASF GitHub Bot commented on CB-14033:
-------------------------------------

raphinesse opened a new pull request #621: CB-14033 Support symbolic links on 
Windows
URL: https://github.com/apache/cordova-lib/pull/621
 
 
   ### Platforms affected
   Windows
   
   ### What does this PR do?
   This uses junctions whenever creating symlinks on Windows since that does 
not require any special privileges.
   
   ### What testing has been done on this change?
   None on Windows yet.
   
   ### Checklist
   - [x] [Reported an issue](http://cordova.apache.org/contribute/issues.html) 
in the JIRA database
   - [x] Commit message follows the format: "CB-3232: (android) Fix bug with 
resolving file paths", where CB-xxxx is the JIRA ID & "android" is the platform 
affected.
   - [x] Added automated test coverage as appropriate for this change.
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


> `cordova plugin add` skips directory on windows
> -----------------------------------------------
>
>                 Key: CB-14033
>                 URL: https://issues.apache.org/jira/browse/CB-14033
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: cordova-lib
>         Environment: Cordova 6.2.0
>            Reporter: Jack Lu
>            Assignee: Raphael
>            Priority: Major
>
> Suppose we have a cordova plugin project and a test project that are under 
> the same directory. The {color:#333333}cordova plugin project {color}is in 
> directory p, and the test project in directory t. When I run following 
> command in directory t:
>  
> {code:java}
> cordova plugin add ..\p
> {code}
> the install fails, and I found it's due to the src directory missing during 
> copying.
> After digging into the source, I found it's caused by a special handling in 
> the fetch action{color:#333333} on windows{color}. The source is 
> {color:#333333}[https://github.com/apache/cordova-lib/blob/master/src/plugman/fetch.js#L299]{color}.
> {code:java}
>             /*
>                 [CB-10423]
>                 This is a special case. On windows we cannot create a symlink 
> unless we are run as admin
>                 The error that we have is because src contains dest, so we 
> end up with a recursive folder explosion
>                 This code avoids copy the one folder that will explode, and 
> allows plugins to contain a demo project
>                 and to install the plugin via `cordova plugin add ../`
>             */
>             var resolvedSrcPath = path.resolve(plugin_dir);
>             var filenames = fs.readdirSync(resolvedSrcPath);
>             var relPath = path.relative(resolvedSrcPath,dest);
>             var relativeRootFolder = relPath.split('\\')[0];
>             filenames.splice(filenames.indexOf(relativeRootFolder),1);
> {code}
> in this case {color:#333333}relPath{color} will be "..\t\plugins\{{{{plugin 
> id}}}}", {color:#333333}relativeRootFolder{color} be "..", then 
> {color:#333333}filenames.indexOf(relativeRootFolder){color} be -1, finally 
> filenames lost the last element, which is the src directory in my case.
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to