diff options
author | Fabian Frederick <fabf@skynet.be> | 2014-04-02 15:39:52 -0400 |
---|---|---|
committer | Michal Marek <mmarek@suse.cz> | 2014-04-08 11:15:15 -0400 |
commit | 67554faa7614b93722ed559fc3f914b86bf606ae (patch) | |
tree | d3c1e6fbea010f087ce5fa4fc105caf310bced34 /scripts | |
parent | 79192ca8ebd9a25c583aa46024a250fef1e7766f (diff) |
scripts/bootgraph.pl: Add graphic header
Adding -header + help function like other .pl in /scripts.
Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/bootgraph.pl | 42 |
1 files changed, 40 insertions, 2 deletions
diff --git a/scripts/bootgraph.pl b/scripts/bootgraph.pl index b78fca994a15..9ca667bcaee9 100644 --- a/scripts/bootgraph.pl +++ b/scripts/bootgraph.pl | |||
@@ -38,6 +38,31 @@ | |||
38 | # | 38 | # |
39 | 39 | ||
40 | use strict; | 40 | use strict; |
41 | use Getopt::Long; | ||
42 | my $header = 0; | ||
43 | |||
44 | sub help { | ||
45 | my $text = << "EOM"; | ||
46 | Usage: | ||
47 | 1) dmesg | perl scripts/bootgraph.pl [OPTION] > output.svg | ||
48 | 2) perl scripts/bootgraph.pl -h | ||
49 | |||
50 | Options: | ||
51 | -header Insert kernel version and date | ||
52 | EOM | ||
53 | my $std=shift; | ||
54 | if ($std == 1) { | ||
55 | print STDERR $text; | ||
56 | } else { | ||
57 | print $text; | ||
58 | } | ||
59 | exit; | ||
60 | } | ||
61 | |||
62 | GetOptions( | ||
63 | 'h|help' =>\&help, | ||
64 | 'header' =>\$header | ||
65 | ); | ||
41 | 66 | ||
42 | my %start; | 67 | my %start; |
43 | my %end; | 68 | my %end; |
@@ -49,6 +74,11 @@ my $count = 0; | |||
49 | my %pids; | 74 | my %pids; |
50 | my %pidctr; | 75 | my %pidctr; |
51 | 76 | ||
77 | my $headerstep = 20; | ||
78 | my $xheader = 15; | ||
79 | my $yheader = 25; | ||
80 | my $cyheader = 0; | ||
81 | |||
52 | while (<>) { | 82 | while (<>) { |
53 | my $line = $_; | 83 | my $line = $_; |
54 | if ($line =~ /([0-9\.]+)\] calling ([a-zA-Z0-9\_\.]+)\+/) { | 84 | if ($line =~ /([0-9\.]+)\] calling ([a-zA-Z0-9\_\.]+)\+/) { |
@@ -112,15 +142,23 @@ if ($count == 0) { | |||
112 | print STDERR <<END; | 142 | print STDERR <<END; |
113 | No data found in the dmesg. Make sure that 'printk.time=1' and | 143 | No data found in the dmesg. Make sure that 'printk.time=1' and |
114 | 'initcall_debug' are passed on the kernel command line. | 144 | 'initcall_debug' are passed on the kernel command line. |
115 | Usage: | ||
116 | dmesg | perl scripts/bootgraph.pl > output.svg | ||
117 | END | 145 | END |
146 | help(1); | ||
118 | exit 1; | 147 | exit 1; |
119 | } | 148 | } |
120 | 149 | ||
121 | print "<?xml version=\"1.0\" standalone=\"no\"?> \n"; | 150 | print "<?xml version=\"1.0\" standalone=\"no\"?> \n"; |
122 | print "<svg width=\"2000\" height=\"100%\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n"; | 151 | print "<svg width=\"2000\" height=\"100%\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n"; |
123 | 152 | ||
153 | |||
154 | if ($header) { | ||
155 | my $version = `uname -a`; | ||
156 | my $date = `date`; | ||
157 | print "<text transform=\"translate($xheader,$yheader)\">Kernel version: $version</text>\n"; | ||
158 | $cyheader = $yheader+$headerstep; | ||
159 | print "<text transform=\"translate($xheader,$cyheader)\">Date: $date</text>\n"; | ||
160 | } | ||
161 | |||
124 | my @styles; | 162 | my @styles; |
125 | 163 | ||
126 | $styles[0] = "fill:rgb(0,0,255);fill-opacity:0.5;stroke-width:1;stroke:rgb(0,0,0)"; | 164 | $styles[0] = "fill:rgb(0,0,255);fill-opacity:0.5;stroke-width:1;stroke:rgb(0,0,0)"; |