Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add a yummy matrix multiplication rpc thing
[simgrid.git] / tools / MSG_visualization / colorize.pl
1 #!/usr/bin/perl
2
3 $col_white    = "\033[00m";
4 $col_black    = "\033[30m";
5 $col_red      = "\033[31m";
6 $col_green    = "\033[32m";
7 $col_yellow   = "\033[33m";
8 $col_blue     = "\033[34m";
9 $col_purple   = "\033[35m";
10 $col_cyan     = "\033[36m";
11 $col_ltgray   = "\033[37m";
12 $col_darkgray = "\033[30m";
13
14 $col_norm       = $col_white;
15 $col_background = "\033[07m";
16 $col_brighten   = "\033[01m";
17 $col_underline  = "\033[04m";
18 $col_blink      = "\033[05m";
19
20 # Customize colors here...
21 #
22 $col_default = $col_ltgray;
23 my (@coltab) = (
24     $col_green,                    $col_yellow,
25     $col_purple,                   $col_cyan,
26     $col_red,                      $col_blue,
27     $col_background . $col_green,
28     $col_background . $col_yellow, $col_background . $col_purple,
29     $col_background . $col_cyan,   $col_background . $col_red,
30     $col_background . $col_blue,   $col_background . $col_magenta,
31 );
32
33 my %pid;
34
35 sub pidcolor {
36     my $pid = shift;
37
38     unless (defined($pid{$pid})) {
39         # first time we see this pid. Affect it a color
40         $pid{$pid}=(scalar keys %pid) % (scalar @coltab);
41     }
42     return $coltab[$pid{$pid}];
43 }
44
45 while (<>) {
46     $orgline = $thisline = $_;
47
48     if ( $thisline =~ /^\[([^:]+):([^:]+):\((\d+)\) ([0-9\.]*)\] ([^\[]*) \[([^\[]*)\] (.*)$/ ) {
49         $host=$1;
50         $procname=$2;
51         $pid=$3;
52         $date=$4;
53         $location=$5;
54         $xbt_channel=$6;
55         $message=$7;
56
57         print $col_norm;
58         printf "[% 10.3f]",$date;
59
60         print pidcolor($pid);
61         printf "[%10s:%-10s]",$host,$procname;
62         print " $message";
63         print $col_norm."\n";
64     } elsif ( $thisline =~ /^==(\d+)== (.*)$/) {
65         # take care of valgrind outputs
66         print pidcolor($1)."$2\n";
67
68     } else {
69         print $col_default. $orgline;
70     }
71 }
72
73 print $col_norm;