#!/usr/bin/perl

use strict;
use File::Find;
use File::Temp;

$ENV{LANG} = "POSIX";
my $vc = qq(gpg --verify);
my $dc = qq(gpg --batch --yes --decrypt);
my $cc = qq(gpg --batch --yes --clearsign);
#my $expired = "Hinweis: Dieser Schlüssel ist verfallen!";
my $expired = "Note: This key has expired!";

find(\&f, qw(/home/apt/incoming/));

sub f {

  /\.changes$/ or return;
  my $f = $_;
  my $r = qx/$vc $f 2>&1/;
  return if $?;
  $r =~ /$expired/ || return;
  print "Attempting to resign [$f] .. ";
  my $t = File::Temp->new()->filename();
  my $cmd = "$dc -o $t $f &>/dev/null";
  open PIPE, "$cmd |"  or warn "Can't open [$cmd |]: [$?] [$!]\n";
  $cmd = "$cc -o $f $t";
  open PIPE, "$cmd |"  or warn "Can't open [$cmd |]: [$?] [$!]\n";
  print "finished\n";

}
