Skip to content

Commit 508abc1

Browse files
committed
Add verbose mode and change cli interface
1 parent 5b190f2 commit 508abc1

File tree

3 files changed

+27
-14
lines changed

3 files changed

+27
-14
lines changed

bin/jscr.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@ argvParser.parse(process.argv)
1717

1818
var path = specs.targetedTree;
1919
var skipped = specs.skippedDirectory;
20+
var isVerbose = specs.isVerbose
2021

21-
return crawlComplexity(path, skipped);
22+
return crawlComplexity(path, skipped, isVerbose);
2223

2324
})
2425
.then(function(data){

src/argv-parser.js

+17-9
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,36 @@ var program = require('commander'),
44
var pjson = require('../package.json'),
55
options = {
66
targetedTree : './',
7+
isVerbose : false,
78
getOutputFileName : 'jscr-report.html',
8-
skippedDirectories : []
9+
skippedDirectory : undefined
910
};
1011

1112
program
1213
.version(pjson.version)
13-
.usage('[options] [<folder to analyse ...>]');
14-
15-
program
16-
.command('*')
17-
.action(function(target){
18-
options.targetedTree = target;
19-
});
14+
.usage('[options]');
2015

2116
program
17+
.option('-t, --target <folder>', 'change root folder to analyse - default is current directory', function(folder){
18+
options.targetedTree = folder;
19+
})
2220
.option('-s, --skip <folder>', 'skip a folder', function(folder){
2321
options.skippedDirectory = folder;
24-
});
22+
})
23+
.option('-o, --output <filename>', 'customize html report filename - default is \''+ options.getOutputFileName +'\'', function(filename){
24+
options.getOutputFileName = filename;
25+
})
26+
.option('-v, --verbose', 'outputs analysisis logs');
2527

2628
module.exports.parse = function(argv){
2729
return new Promise(function (resolve) {
30+
2831
program.parse(argv);
32+
33+
if(program.verbose) {
34+
options.isVerbose = true;
35+
}
36+
2937
resolve(options.targetedTree);
3038
});
3139
};

src/crawl-complexity.js

+8-4
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@
125125
*
126126
* returns a Function
127127
*/
128-
function populateReportList(errorsList, reportList, skipped){
128+
function populateReportList(errorsList, reportList, skipped, isVerbose){
129129

130130
/**
131131
* Populates error and report stack objects
@@ -147,6 +147,9 @@
147147
.then(readJSFile)
148148
.then(buildFileReport)
149149
.then(function(report){
150+
if(isVerbose) {
151+
console.log(report);
152+
}
150153
reportList.push(report);
151154
})
152155
.caught(function(err){
@@ -169,18 +172,19 @@
169172
* returns a Promise
170173
* rejects promise if any runtime error occurs
171174
*/
172-
function crawlComplexity(path, skippedFolder){
175+
function crawlComplexity(path, skippedFolder, isVerbose){
173176

174177
var
175178
reportList = [],
176179
errorsList = null,
177-
resolver = Promise.defer()
180+
resolver = Promise.defer(),
181+
isVerbose = isVerbose || false;
178182
;
179183

180184
var walker = walk.walk(path || './');
181185

182186
walker
183-
.on("file", populateReportList(errorsList, reportList, skippedFolder))
187+
.on("file", populateReportList(errorsList, reportList, skippedFolder, isVerbose))
184188
.on("error", function(){ resolver.reject('runtime error'); })
185189
.on("end", function(){
186190
resolver.resolve({

0 commit comments

Comments
 (0)