unix:chromeos:systemreport
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
unix:chromeos:systemreport [2023/07/04 15:32] – rodolico | unix:chromeos:systemreport [2023/07/04 17:06] (current) – rodolico | ||
---|---|---|---|
Line 18: | Line 18: | ||
- Save as your_nameChrome.pdf (ie, RodChrome.pdf) | - Save as your_nameChrome.pdf (ie, RodChrome.pdf) | ||
- | You now have two large files in your downloads folder, and mhtml file and a PDF. The following Perl script parses the mhtml file, using ====CATEGORY==== as headers, with the contents afterwards. I have written it to NOT include the logs. Use the command: | + | You now have two large files in your downloads folder, and mhtml file and a PDF. The following Perl script parses the mhtml file, using ====CATEGORY==== as headers, with the contents afterwards. I have written it to NOT include the logs. |
- | <code bash>tr -d ' | + | |
+ | Note: The mhtml output uses Windows line endings, so if you're running this on a Unix machine, you'll want to run it through tr to get convert it to Unix line endings. | ||
+ | |||
+ | Use the command: | ||
+ | <code bash>tr -d ' | ||
<code perl processChrome.pl> | <code perl processChrome.pl> | ||
Line 29: | Line 33: | ||
# tr -d ' | # tr -d ' | ||
+ | # anything matching these keys will be include, and all else | ||
+ | # will be excluded. If empty, will include everything not | ||
+ | # matching $ignoreKeys. In this case, we've commented out | ||
+ | # everything, so it will output everything not ignored | ||
my %lookFor = ( | my %lookFor = ( | ||
- | ' | + | # ' |
- | ' | + | # ' |
- | ' | + | # ' |
- | ' | + | # ' |
- | ' | + | # ' |
- | ' | + | # ' |
- | ' | + | # ' |
- | ' | + | # ' |
- | ' | + | # ' |
- | ' | + | # ' |
- | ' | + | # ' |
- | ' | + | # ' |
); | ); | ||
+ | # anything matching this regex will be ignored | ||
+ | # this matches anything with log, profile or ui-heirarchy in | ||
+ | # the key. NOTE: match is case insensitive | ||
+ | my $ignoreRegex = qr' | ||
+ | |||
+ | |||
+ | # get a single line. This is more difficult since the output | ||
+ | # takes very long lines and separates them into 80 column blocks | ||
+ | # the indicator for this continuation is an equals sign (=) | ||
+ | # at the end of the line. Thus, we continue to read lines from | ||
+ | # STDIN so long as the current line ends with an equal sign | ||
+ | # and we concatinate all of the lines together | ||
sub getLine { | sub getLine { | ||
my @lines; | my @lines; | ||
Line 59: | Line 78: | ||
} | } | ||
} | } | ||
+ | } | ||
+ | |||
+ | # makes a category name from the div name | ||
+ | sub makeCategory { | ||
+ | my $initValue = shift; | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
} | } | ||
Line 72: | Line 100: | ||
# Ok, if we have a category already, and have found a </ | # Ok, if we have a category already, and have found a </ | ||
| | ||
- | if ( $line =~ m/ | + | # check for a line like <div id=" |
- | | + | # $matches[0] has the key name (ie, something), and $matches[1] has any subsequent |
- | $line = $2; | + | # information, |
- | #print "$key\n$line\n"; | + | if ( my @matches = ($line =~ m/ |
- | # this is one of the ones we want, so start using it | + | # print "Found div $matches[0]\n" |
- | if ( $lookFor{$key} ) { | + | |
- | | + | # |
- | #print " | + | next if $ignoreRegex && $matches[0] =~ m/ |
- | | + | # if %lookFor empty, or not empty and has matching key, inlcude |
+ | if ( ! %lookFor || $lookFor{$matches[0]} ) { | ||
+ | # Create the category | ||
+ | | ||
+ | # | ||
+ | | ||
} | } | ||
} elsif ( $category ) { | } elsif ( $category ) { | ||
+ | # we're in the middle of a div, so just add the line. | ||
$found{$category} .= $line; | $found{$category} .= $line; | ||
} | } |
unix/chromeos/systemreport.1688502742.txt.gz · Last modified: 2023/07/04 15:32 by rodolico