diff --git a/check_certs.sh b/check_certs.sh new file mode 100755 index 0000000..d249ab4 --- /dev/null +++ b/check_certs.sh @@ -0,0 +1,118 @@ +#!/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); +}