+.config/yt-dlp.conf
[nethome.git] / bin / upsc-log-diff
1 #! /usr/bin/perl
2 use strict;
3 use warnings;
4 local *F;
5 my $ta="/tmp/upsc-log-diff.".$$."a";
6 my $tb="/tmp/upsc-log-diff.".$$."b";
7 unlink $ta; unlink $tb;
8 END {
9   unlink $ta; unlink $tb;
10 }
11 my $F="/var/log/upsc.log";
12 open F,$F or die "$F: $!";
13 my $prev;
14 my $this="";
15 my $line;
16 while (<F>) {
17   $line=$.;
18   chomp;
19   if (!/^$/) {
20     $this.="$_\n";
21     next;
22   }
23   if ($prev) {
24     local *TA;
25     local *TB;
26     open TA,">$ta" or die "$ta: $!";
27     open TB,">$tb" or die "$tb: $!";
28     print TA $prev or die "$ta: $!";
29     print TB $this or die "$tb: $!";
30     close TA or die "$ta: $!";
31     close TB or die "$ta: $!";
32     local *TD;
33     my $td="diff -u $ta $tb|";
34     open TD,$td or die "$td: $!";
35     <TD>=~/^\Q--- / or die "line $line: $_";
36     <TD>=~/^\Q+++ / or die "line $line: $_";
37     while (<TD>) {
38       next if /^[@ ]/;
39       print;
40     }
41     close TD; # or die "$td: $!";
42     print "\n";
43   }
44   $prev=$this;
45   $this="";
46 }
47 die $this if $this;