[
https://issues.apache.org/jira/browse/CB-6329?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13958948#comment-13958948
]
ASF GitHub Bot commented on CB-6329:
------------------------------------
Github user agrieve commented on a diff in the pull request:
https://github.com/apache/cordova-cli/pull/151#discussion_r11260194
--- 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)());
--- End diff --
Might clean things up even more to have info_utils.* return promises
instead of callbacks. Then you don't need to denodify, and error reporting
becomes easier.
> [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)