comparison mcabber/contrib/conv_log_dates.pl @ 243:c07fa9baca3f

[/trunk] Changeset 256 by mikael * Add script to convert logfiles to new logfile format (mcabber >= 0.6.1) Dates are converted to iso8601.
author mikael
date Tue, 14 Jun 2005 18:01:23 +0000
parents
children
comparison
equal deleted inserted replaced
242:cb2f18e20e6a 243:c07fa9baca3f
1 #!/usr/bin/perl -w
2 #
3 # usage: conv_log_dates.pl historyfile.old > historyfile.new
4 # Convert the dates to the new logfile format (mcabber v. >= 0.6.1)
5 #
6 # See histolog.c for the mcabber format.
7 #
8 # MiKael, 2005/06/14
9
10 use strict;
11
12 my $line;
13 my $linesleft = 0;
14
15 while ($line = <>) {
16 if ($linesleft) {
17 print $line;
18 $linesleft--;
19 next;
20 }
21 my $type = substr($line, 0, 2);
22 my $off_format = 0;
23 my $date;
24
25 if (substr($line, 11, 1) eq "T") {
26 $off_format = 8; # Offset
27 }
28
29 if ($off_format) {
30 # Already using the new format, nothing to do
31 $date = substr($line, 3, 18);
32 } else {
33 # Date conversion to iso8601
34 my ($ss,$mm,$hh,$DD,$MM,$YYYY) = gmtime(substr($line, 3, 10));
35 $date = sprintf "%04d%02d%02dT%02d:%02d:%02dZ",
36 $YYYY+1900, $MM+1,$DD,$hh,$mm,$ss;
37 }
38 $linesleft = substr($line, 14 + $off_format, 3);
39 $line = substr($line, 14 + $off_format);
40
41 print $type." ".$date." ".$line;
42
43 # Is there something better to cast to integer?
44 $linesleft = 0 + $linesleft;
45 }
46
47 # vim:set sw=2 sts=2 et si cinoptions="":