14
14
*/
15
15
16
16
var toolRunner = require ( './tool-runner' ) ;
17
+ var optimist = require ( 'optimist' ) . boolean ( [ 'allzones' ] ) ;
17
18
var util = toolRunner . util ;
18
19
toolRunner . launch ( runTool ) ;
19
20
@@ -24,10 +25,13 @@ toolRunner.launch(runTool);
24
25
* @param {!Array.<string> } args Command line arguments.
25
26
* @param {function(number) } done Call to end the program with a return code.
26
27
*/
27
- function runTool ( platform , args , done ) {
28
- var inputFile = args [ 0 ] ;
28
+ function runTool ( platform , args_ , done ) {
29
+ var args = optimist . argv ;
30
+ var allzones = args [ 'allzones' ] ;
31
+
32
+ var inputFile = args [ '_' ] [ 0 ] ;
29
33
if ( ! inputFile ) {
30
- console . log ( 'usage: dump.js file.wtf-trace' ) ;
34
+ console . log ( 'usage: dump.js [--allzones] file.wtf-trace' ) ;
31
35
done ( 1 ) ;
32
36
return ;
33
37
}
@@ -39,7 +43,7 @@ function runTool(platform, args, done) {
39
43
console . log ( 'ERROR: unable to open ' + inputFile , db , db . stack ) ;
40
44
done ( 1 ) ;
41
45
} else {
42
- done ( dumpDatabase ( db ) ) ;
46
+ done ( dumpDatabase ( db , allzones ) ) ;
43
47
}
44
48
} ) ;
45
49
} ;
@@ -48,9 +52,10 @@ function runTool(platform, args, done) {
48
52
/**
49
53
* Dump the database.
50
54
* @param {!wtf.db.Database } db Database.
55
+ * @param {!boolean } allzones Whether it's needed to dump all the zones or just the first one
51
56
* @return {number } Return code.
52
57
*/
53
- function dumpDatabase ( db ) {
58
+ function dumpDatabase ( db , allzones ) {
54
59
var sources = db . getSources ( ) ;
55
60
for ( var n = 0 ; n < sources . length ; n ++ ) {
56
61
util . logContextInfo ( sources [ n ] . getContextInfo ( ) ) ;
@@ -62,12 +67,15 @@ function dumpDatabase(db) {
62
67
return 0 ;
63
68
}
64
69
65
- var zone = zones [ 0 ] ;
66
- var eventList = zone . getEventList ( ) ;
67
- var it = eventList . begin ( ) ;
68
- for ( ; ! it . done ( ) ; it . next ( ) ) {
69
- util . logEvent ( it , zone ) ;
70
- }
70
+ var count = allzones ? zones . length : 1 ;
71
+ for ( var i = 0 ; i < count ; ++ i ) {
72
+ var zone = zones [ i ] ;
73
+ var eventList = zone . getEventList ( ) ;
74
+ var it = eventList . begin ( ) ;
75
+ for ( ; ! it . done ( ) ; it . next ( ) ) {
76
+ util . logEvent ( it , zone ) ;
77
+ }
71
78
79
+ }
72
80
return 0 ;
73
81
} ;
0 commit comments