updated git and svn scripts
[xrzperl.git] / zim-create-aptlog
blobdaa3d62cbf0f51f96e4a951e132d90f8e2272f60
1 #!/usr/bin/perl -w
2 ###APPNAME: zim-create-aptlog
3 ###APPAUTHOR: xiaoranzzz
4 ###APPDATE: Wed Apr 2 00:42:39 2008
5 ###APPVER: 0.1
6 ###APPDESC:
7 ###APPUSAGE:
8 ###APPEXAMPLE:
9 ###APPOPTION:
10 use strict;
11 use Data::Dumper;
13 my $zimdir="/myplace/workspace/Wiki/myplace/Works/SystemAdmin/Packages";
14 mkdir $zimdir unless(-d $zimdir);
15 my $logfile=shift;
16 my $log_h;
17 if($logfile && -f $logfile) {
18 if(!open $log_h,"<",$logfile) {
19 print STDERR "Open $logfile for reading error:$!\n";
20 print STDERR "Trying sudo...\n";
21 open $log_h,"-|","sudo cat '$logfile'" or die("$!\n");
24 else {
25 open $log_h,"<&0";
27 my %logs;
28 my $date;
29 my $time;
30 while(<$log_h>) {
31 chomp;
32 s/\s+$//g;
33 if(!$date) {
34 next unless(/^Log started:\s+([^\s]+)\s+([^\s]+)\s*$/);
35 $date=$1;
36 $logs{$date}=() unless(exists $logs{$date});
37 push(@{$logs{$date}},"\n== $2 ==\n");
39 elsif(/^Log ended:/){
40 $date=undef;
42 else {
43 if(/^\s*(:?dpkg|debconf)\b/) {
44 push(@{$logs{$date}}," **$_**");
45 next;
47 if(/^\s*Setting up\s+([^\s]+)\s+\(([^\(\)]+)\)/) {
48 push(@{$logs{$date}},"* Setting up __$1__ ($2)");
49 next;
51 if(/^\s*Removing\s+([^\s]+)\s+...\s*$/) {
52 push(@{$logs{$date}},"* ~~Removing~~ __$1__");
53 next;
57 close $log_h;
58 if(open FI,"<","$zimdir.txt") {
59 my $text=join("",<FI>);
60 close FI;
61 open FO,">>","$zimdir.txt";
62 foreach (sort keys %logs) {
63 next if($text =~ /^\s*\*\s*\[\[\.$_\|$_\]\]/m);
64 print FO "* [[.$_|$_]]\n";
66 close FO;
69 foreach my $date(sort keys(%logs)) {
70 print STDERR "Writing $zimdir/$date.txt...\n";
71 open FO,">>","$zimdir/$date.txt" or die("$!\n");
72 foreach(@{$logs{$date}}) {
73 print FO $_,"\n";
75 close FO;