I know Carlos just changed several CLI commands to use spawn. There doesn't
seem to be any specific handling for Windows.

https://git-wip-us.apache.org/repos/asf?p=cordova-cli.git;a=commit;h=01c7ecec7ccf4a3c1423ddf3844e125d24965025


On Wed, Oct 23, 2013 at 10:44 AM, Braden Shepherdson <bra...@chromium.org>wrote:

> I thought we were shelling out that command, not trying to load the file.
> Then Windows would locate the version.bat file and run it, while Unixy
> platforms would see the version file with +x, and run it.
>
> Are we no longer going through the shell? (This should be using
> child_process.exec, not .spawn, for example.)
>
> Braden
>
>
> On Wed, Oct 23, 2013 at 10:13 AM, Bryan Higgins <bhigg...@blackberry.com
> >wrote:
>
> > This issue has to do with the host system rather than platform. Android
> and
> > BB10 both have version.bat files.
> >
> >
> > On Wed, Oct 23, 2013 at 9:56 AM, Sergey Grebnov (Akvelon) <
> > v-seg...@microsoft.com> wrote:
> >
> > > Hi,
> > >
> > > #1 The problem
> > > Right now the simplest (and also the most correct IMO) way to specify
> > > plugin restrictions to specific cordova version is the following:
> > >
> > > plugin.xml:
> > >
> > >  <engines>
> > >    <engine name="cordova" version=">=2.7.0" />
> > >  </engines>
> > >
> > > But in this case as per plugman engines definition
> > > (plugman/src/util/default-engines.js) plugman will always try to find
> > > version verification script in some predefined location, not taking
> into
> > > account currently running platform, and will fail on WP since correct
> > > script name is version.bat, not just version.
> > >
> > > module.exports = function(project_dir){
> > >     return {
> > >         'cordova':
> > >             { 'platform':'*', 'scriptSrc':
> > > path.join(project_dir,'cordova','version') }, <- works in general, but
> > NOT
> > > for WP7/8
> > >          ...
> > >         'cordova-wp8':
> > >             { 'platform':'wp8', 'scriptSrc':
> > > path.join(project_dir,'cordova','version.bat') }, <- correct location,
> > not
> > > used in case of example above
> > >
> > >
> > > This means that right now there is no way to specify platform dependent
> > > location of version verification script for 'cordova' engine check
> which
> > >  is going to be the most popular.
> > >
> > > #2 Proposed solution
> > >
> > > Taking into account we have platform context when we are looking for
> the
> > > appropriate engine
> > > plugman/src/install.js
> > >         function getEngines(pluginElement, platform, project_dir,
> > > plugin_dir){
> > >
> > > I propose to think about 'cordova' engine settings (in
> > default-engines.js)
> > > as a fallback in case we don't have any platform specific engine for
> some
> > > platform. So in case of  engine.attrib["name"] == 'cordova' we should
> > check
> > > if there is engine with ['cordova-' + platform] name first and if it
> does
> > > not exist use 'cordova' engine settings only.  For example we already
> do
> > > this by the following line, but we need both engines (cordova and
> > > cordova-wp8) specified in plugin.xml file. Thoughts?
> > >
> > > // make sure we check for platform req's and not just cordova reqs
> > >     if(cordovaEngineIndex && cordovaPlatformEngineIndex)
> > > uncheckedEngines.pop(cordovaEngineIndex);
> > >
> > > PS. Another minor potential issue seems to be in check above;
> > > cordovaEngineIndex && cordovaPlatformEngineIndex will return false if
> one
> > > of indexes is zero (zero is valid/correct index in this context so it
> > must
> > > be true).
> > >
> > > Thx!
> > > Sergey
> > >
> >
>

Reply via email to