Mercurial > ~mikael > mcabber > hg
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="": |