-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathkontroli
executable file
·52 lines (45 loc) · 1.17 KB
/
kontroli
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/perl
use strict;
my $dos_art = 'README.md';
my $dos_ebloj = 'ebloj.txt';
my $dos_tabelo = 'tabelo.txt';
my $art = &legi($dos_art);
my $ebloj = &legi($dos_ebloj);
my $tabelo = &legi($dos_tabelo);
my $ebloj_dos = '';
foreach my $x (split(/\n/, $ebloj)) {
$ebloj_dos .= "$1\n" if $x =~ /^ *\+ (\S+-\S+-\S+)$/;
}
my $ebloj_art = '';
foreach my $x (split(/\n/, $art)) {
$ebloj_art .= "$1\n" if $x =~ /^\* (\S+o-\S+o-\S+o)$/;
}
if ($ebloj_dos ne $ebloj_art) {
&diff($ebloj_dos, $ebloj_art);
die "\"$dos_ebloj\" malkongruas kun \"$dos_art\"!\n";
}
$art =~ /```\n(.*)```/s || die;
my $tab_art = $1;
my $tab_gen = substr($tabelo, 0, length($tab_art));
if ($tab_gen ne $tab_art) {
&diff($tab_gen, $tab_art);
die "\"$dos_tabelo\" malkongruas kun \"$dos_art\"!\n";
}
sub legi {
my ($dos) = @_;
open(my $fd, '<:utf8', $dos) || die;
my $r = join('', <$fd>);
close($fd);
return $r;
}
sub diff {
my ($t1, $t2) = @_;
die if $t1 eq $t2;
open(my $fd1, '>:utf8', 'tmp.1') || die;
open(my $fd2, '>:utf8', 'tmp.2') || die;
print $fd1 $t1;
print $fd2 $t2;
close($fd1);
close($fd2);
system('diff tmp.1 tmp.2') || die;
}