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

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

Github user agrieve commented on a diff in the pull request:

    https://github.com/apache/cordova-cli/pull/152#discussion_r11080438
  
    --- Diff: src/info-utils.js ---
    @@ -0,0 +1,150 @@
    +/**
    +    Licensed to the Apache Software Foundation (ASF) under one
    +    or more contributor license agreements.  See the NOTICE file
    +    distributed with this work for additional information
    +    regarding copyright ownership.  The ASF licenses this file
    +    to you under the Apache License, Version 2.0 (the
    +    "License"); you may not use this file except in compliance
    +    with the License.  You may obtain a copy of the License at
    +
    +    http://www.apache.org/licenses/LICENSE-2.0
    +
    +    Unless required by applicable law or agreed to in writing,
    +    software distributed under the License is distributed on an
    +    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    +    KIND, either express or implied.  See the License for the
    +    specific language governing permissions and limitations
    +    under the License.
    +*/
    +var cordova_util  = require('./util'),
    +child_process = require('child_process'),
    +path          = require('path'),
    +fs            = require('fs'),
    +_self;
    +
    +_self = {
    +getNodeInfo: function( callback ){
    +        callback(_self.execFunc('node', '--version', 
function(call){callback(call);}));
    +    },
    +    
    +getCordovaInfo: function( callback ){
    +        callback(_self.execFunc('cordova', '--version', 
function(call){callback(call);}));
    +    },
    +    
    +getPlatformInfo: function(platform, projectRoot, callback ){
    +        var command="", args="";
    +        switch( platform ){
    +        case "ios":
    +            _self.execFunc('xcodebuild', '-version', 
function(call){callback('iOS Platform:\r\r' +call);});
    +            break;
    +        case "android":
    +            _self.execFunc('android', 'list target', 
function(call){callback('Android Platform:\r\r' +call);});
    +            break;
    +        case "blackberry10":
    +            var bbUtilsPath = path.join(projectRoot, 'platforms', 
platform, 'cordova'),
    +            bbBuildPath= path.join(projectRoot, 'platforms', platform, 
'build'),
    +            bbresults="",
    +            varState;
    +            //get CORDOVA_BBTOOLS environment variable.
    +            _self.get_pathEnv( ['blackberry-nativepackager', 
'blackberry-deploy'], function (path){
    +                if(path){
    +                    //s et CORDOVA_BBTOOLS environment variable.
    +                    varState = _self.setEnv_Var('CORDOVA_BBTOOLS', path, 
false);
    +                    // Get BB10 SDK Version
    +                    _self.getSDKinfo(bbUtilsPath, function(result){
    +                        if(result){bbresults+="Blackberry 10 Native SDK 
version: "+result+"\r";
    +                            // Get BB10 deployed and stored devices
    +                            _self.deployedDevices(bbUtilsPath, 'device', 
false, function(result){
    +                                if(result){bbresults+="\rBlackberry 10 
deployed devices:\r"+result+"\r";
    +                                    // Get BB10 deployed and stored 
emulators
    +                                    _self.deployedDevices(bbUtilsPath, 
'emulator', false, function (result){
    +                                        
if(result){bbresults+="\rBlackberry deployed emulator:\r"+result+"\r";
    +                                            
if(!varState){_self.delEnv_Var('CORDOVA_BBTOOLS');}
    +                                            callback('Blackberry 10 
Platform:\r\r' +bbresults);            
    +                                        }});
    +                                }});
    +                        }});
    +                }
    +                else{callback("Blackberry 10 Native SDK path not found");}
    +            });
    +            break;
    +        }
    +    },
    +    // Execute using a child_process exec, for any async command
    +execFunc: function(command, args, callback){
    +        child_process.exec(command + ' ' +args, 
    +        function (error, stdout, stderr) {
    +            callback(stdout);
    +            if (error !== null) {
    +                callback('Error performing command: ' + error + "\n" 
+stderr);
    +            }
    +        });
    +    },
    +    //Uses Library to get Native SDK version
    +getSDKinfo: function ( utilsPath, callback) {
    +        _self.execFunc("\"" +path.join(utilsPath,'bb10-ndk-version')+"\"" 
, '' ,function(output){callback(output);});
    +    },
    +    // It explores the json file to get deployed devices or emulators.
    +deployedDevices: function ( utilsPath, type, flag, callback) {
    +        var collection="";
    +        require(path.join(utilsPath,'lib', 'target-utils')).getTargetList( 
type, flag, function (resultList) {
    +            if(resultList.length>0){
    +                for (var t in resultList) {
    +                    if (resultList.hasOwnProperty(t)) {
    +                        collection+= resultList[t].name + ' ip: ' + 
resultList[t].ip+"\r";
    +                    }
    +                }
    +            }else{collection+='No registered emulators or devices\r';}
    +        });
    +        callback(collection);
    +    },
    +    
    +    delEnv_Var: function (ENV_VAR){
    +        delete process.env[ENV_VAR];
    +    },
    +    //Sets an environmental variable, determining first if exists or not
    +    //uses boolean 'override' to decide if override the value or not.
    +    setEnv_Var: function ( ENV_VAR, value, override) {
    --- End diff --
    
    Rather than setting the env var for the process, you can set it on a 
per-command basis via the options object to exec() / spawn().
    
    Might simplify your logic to make use of superspawn.js helper class, which 
makes it easier to merge environment variables.


> add BB10 support in doPlatform()
> --------------------------------
>
>                 Key: CB-5082
>                 URL: https://issues.apache.org/jira/browse/CB-5082
>             Project: Apache Cordova
>          Issue Type: Sub-task
>          Components: CLI
>            Reporter: Marcel Kinard
>            Assignee: Martin Gonzalez
>            Priority: Minor
>




--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to