119 строки
2.1 KiB
Bash
Executable File
119 строки
2.1 KiB
Bash
Executable File
#!/bin/perl
|
|
|
|
sub adjust {
|
|
my $newLine = $_[0];
|
|
my @neg = @{$_[1]};
|
|
my @pos = @{$_[2]};
|
|
my $found = 0;
|
|
my @newneg = ();
|
|
|
|
foreach my $cline (@neg) {
|
|
if ($cline eq $newLine) {
|
|
$found = 1;
|
|
} else {
|
|
push(@newneg ,$cline );
|
|
}
|
|
}
|
|
if (! $found ) {
|
|
push(@pos, $newLine);
|
|
}
|
|
@neg=@newneg;
|
|
}
|
|
|
|
sub removeLine {
|
|
my $newLine = $_[0];
|
|
my @neg = @{$_[1]};
|
|
my $found = 0;
|
|
my @newneg = ();
|
|
|
|
foreach my $cline (@neg) {
|
|
if ($found) {
|
|
push(@newneg ,$cline );
|
|
} elsif ($cline eq $newLine) {
|
|
$found = 1;
|
|
} else {
|
|
push(@newneg ,$cline );
|
|
}
|
|
}
|
|
return @newneg;
|
|
}
|
|
|
|
sub filter {
|
|
my @list = @{$_[0]};
|
|
my $string = $_[1];
|
|
my @filteredList = ();
|
|
foreach my $cline (@list) {
|
|
if ($cline =~ m/$string/) {
|
|
push(@filteredList ,$cline );
|
|
}
|
|
}
|
|
return @filteredList;
|
|
}
|
|
|
|
sub lineExists {
|
|
my $newLine = $_[0];
|
|
my @neg = @{$_[1]};
|
|
|
|
foreach my $cline (@neg) {
|
|
if ($cline eq $newLine) {
|
|
return 1;
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
sub lineExists {
|
|
my $newLine = $_[0];
|
|
my @neg = @{$_[1]};
|
|
|
|
foreach my $cline (@neg) {
|
|
if ($cline eq $newLine) {
|
|
return 1;
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
sub printeach {
|
|
my @args = @{$_[0]};
|
|
foreach my $arg (@args) {
|
|
chomp $arg;
|
|
print " $arg\n";
|
|
}
|
|
}
|
|
|
|
open my $handle, "git diff certdata.txt|";
|
|
my @diff_lines = <$handle>;
|
|
close $handle;
|
|
my @adds = ();
|
|
my @subs = ();
|
|
foreach my $line (@diff_lines) {
|
|
$type = substr $line,0,1;
|
|
$lline = substr $line,1;
|
|
if ($type eq "+") {
|
|
if (lineExists($lline, \@subs)) {
|
|
@subs = removeLine($lline,\@subs);
|
|
} else {
|
|
push(@adds, $lline);
|
|
}
|
|
};
|
|
if ($type eq "-") {
|
|
if (lineExists($lline, \@adds)) {
|
|
@adds = removeLine($lline,\@adds);
|
|
} else {
|
|
push(@subs, $lline);
|
|
}
|
|
};
|
|
}
|
|
|
|
my @tmp = filter(\@subs, "# Certificate");
|
|
if (@tmp) {
|
|
print " Removing: \n";
|
|
printeach(\@tmp);
|
|
}
|
|
my @tmp = filter(\@adds, "# Certificate");
|
|
if (@tmp) {
|
|
print " Adding: \n";
|
|
printeach(\@tmp);
|
|
}
|