cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From agrieve <...@git.apache.org>
Subject [GitHub] cordova-cli pull request: CB-6329 improve 'cordova info' command
Date Fri, 28 Mar 2014 18:46:24 GMT
Github user agrieve commented on a diff in the pull request:

    https://github.com/apache/cordova-cli/pull/151#discussion_r11080227
  
    --- Diff: src/info.js ---
    @@ -30,105 +29,80 @@ var cordova_util  = require('./util'),
         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"),
    -        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;
    +    //Get projectRoot 
    +    var projectRoot = cordova_util.cdProjectRoot(),
    +    output;
    +    delLog(projectRoot);
    +    //Get Node info
    +    info_utils.getNodeInfo(function (result){
    +        if( result ){
    +            print_SaveMsg(projectRoot, "Node version: "+ result);
    +            //Get Cordova version
    +            info_utils.getCordovaInfo(function (result){
    +                if( result ){print_SaveMsg(projectRoot,"Cordova version: "+ result );
    +                    // Get config.xml file
    +                    fs.readFile(cordova_util.projectConfig(projectRoot) , 'utf-8' , function
( err , result ){
    +                        if(err) {print_SaveMsg(projectRoot,"Error reading config.xml
file"+ err);}
    +                        print_SaveMsg(projectRoot,'Config.xml File: \r'+ result +'\r\r\r');
    +                        print_SaveMsg(projectRoot,'Plugins: \r' + doPlugins( projectRoot
) +'\r\r\r');
    +                        //Get platforms info
    +                        doPlatforms(projectRoot, function (result){
    +                            if( result ){
    +                                print_SaveMsg(projectRoot,result);
    +                            }
    +                        });
    +                    });
    +                }
    +            });
             }
    -    }).join("\n");
    -
    -    // /*
    -    //     Write to File;
    -    // */
    -    events.emit('results', output);
    -    fs.writeFileSync('info.txt', output );
    +    });
         return Q();
    --- End diff --
    
    Not this this is not synchronous, you need to have the returned promise not resolve until
the command is completed. Have a look at other examples where promises are used.
    
    It may also clean up your code above to use promises instead of such heavy nesting.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

Mime
View raw message