cordova-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CB-6329) [cordova-cli] improve 'cordova info' command to work asynchronous
Date Thu, 03 Apr 2014 17:23:15 GMT

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

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

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

    https://github.com/apache/cordova-cli/pull/151#discussion_r11262183
  
    --- Diff: src/info.js ---
    @@ -16,123 +16,99 @@
         specific language governing permissions and limitations
         under the License.
     */
    -var cordova_util  = require('./util'),
    -    shell         = require('shelljs'),
    -    path          = require('path'),
    -    fs            = require('fs'),
    -    Q             = require('q'),
    -    events        = require('./events');
    -
    -/*
    -    A utility funciton to help output the information needed
    -    when submitting a help request.
    -
    -    Outputs to a file
    -*/
    +    var cordova_util  = require('./util'),
    +        path          = require('path'),
    +        fs            = require('fs'),
    +        child_process = require('child_process'),
    +        Q             = require('q'),
    +        info_utils 	  = require('./info-utils');
    +
    +    /*
    +        A utility funciton to help output the information needed
    +        when submitting a help request.
    +
    +        Outputs to a file
    +    */
     module.exports = function info() {
    -
    -    //Get the template
    -    var projectRoot = cordova_util.cdProjectRoot();
    -
    -    var raw = fs.readFileSync(path.join(__dirname, '..', 'doc', 'info.txt'), 'utf-8').split("\n"),
    +        //Get projectRoot 
    +        var projectRoot = cordova_util.cdProjectRoot(),
             output;
    -
    -    output = raw.map(function(line) {
    -        if(line.match('    %') ) {
    -            var type = (line.substr(5)).replace("\r",""),
    -                out = "";
    -
    -            switch(type) {
    -            case "Node":
    -                out = shell.exec('node --version',{silent:true}).output;
    -                break;
    -            case "Cordova":
    -                out = require('../package').version;
    -                break;
    -            case "Config":
    -                out = fs.readFileSync( cordova_util.projectConfig(projectRoot) );
    -                break;
    -            case "Platforms":
    -                out = doPlatforms( projectRoot );
    -                break;
    -            case "Plugins":
    -                out = doPlugins( projectRoot );
    -                break;
    -            default:
    -                break;
    -            }
    -            return line.replace( "%"+type, out );
    -        } else {
    -            return line;
    +        if (!projectRoot) {
    +            return Q.reject( new Error('Current working directory is not a Cordova-based
project.') );
             }
    -    }).join("\n");
     
    -    // /*
    -    //     Write to File;
    -    // */
    -    events.emit('results', output);
    -    fs.writeFileSync('info.txt', output );
    -    return Q();
    +        delLog(projectRoot);
    +        //Array of functions, Q.allSettled
    +        return Q.allSettled([ (function (){
    --- End diff --
    
    https://github.com/kriskowal/q/wiki/API-Reference#promiseallsettled
    Example of Q.allSettled usage, and also I've tried to use just the returning the value


> [cordova-cli] improve 'cordova info' command to work asynchronous
> -----------------------------------------------------------------
>
>                 Key: CB-6329
>                 URL: https://issues.apache.org/jira/browse/CB-6329
>             Project: Apache Cordova
>          Issue Type: Improvement
>          Components: CLI
>    Affects Versions: 3.4.0
>            Reporter: Martin Gonzalez
>            Assignee: Martin Gonzalez
>              Labels: blackberry, cordova-cli, environment, info, wp8
>             Fix For: 3.5.0
>
>
> The 'cordova info' command it works in total sync, it takes some time to pull and push
all data from the environment, so in order to use callbacks more friendly, I'd like to modify
the flow structure of the file and improve it to use get callback outputs, write summary or
log file without templates.
> I also, I'd like to add a secondary file that holds all specific functions related with
'get information about the dev environment'.



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

Mime
View raw message