[ https://issues.apache.org/jira/browse/CB-6329?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13958962#comment-13958962 ]
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_r11260674 --- 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 (){ + console.log("Collecting Data..."); + //Get Node version + return (Q.denodeify (info_utils.getNodeInfo)()); + }()), (function (){ + //Get Cordova version + return (Q.denodeify (info_utils.getCordovaInfo)()); + }()), (function (){ + //Get project config.xml file + return 'Config.xml File: \n\n'+ (fs.readFileSync(cordova_util.projectConfig(projectRoot), 'utf-8')) +'\n\n\n' + }()), (function (){ + //Get list of plugins + return 'Plugins: \n\n' + doPlugins( projectRoot ) +'\n\n\n'; + }()), (function (){ + //Get Platforms information + return (Q.denodeify (doPlatforms)(projectRoot)); + }())]).then(function (promises){ + for(var t in promises) --- End diff -- Understood, I'm changing it, I'll use the first one. > [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)