243
|
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="": |