forked from pool/suse-build-key
43 lines
877 B
Perl
43 lines
877 B
Perl
#!/usr/bin/perl
|
|
|
|
my $keyring='';
|
|
|
|
$keyring="--no-default-keyring --keyring=$ARGV[0]" if $ARGV[0] ne '';
|
|
|
|
my @line;
|
|
my $ver;
|
|
my $rel;
|
|
my $name;
|
|
|
|
open(GPG, "gpg $keyring --no-secmem-warning --list-sigs --list-options show-keyring --fixed-list-mode --with-colons |");
|
|
while (<GPG>) {
|
|
chomp;
|
|
next unless /^pub:/;
|
|
@line = split(':', $_);
|
|
my $id = $line[4];
|
|
$_ = <GPG>;
|
|
chomp;
|
|
next unless /^uid:/;
|
|
@line = split(':', $_);
|
|
$name = $line[9];
|
|
while (1) {
|
|
$_ = <GPG>;
|
|
chomp;
|
|
die unless /^sig:/;
|
|
@line = split(':', $_);
|
|
next if $line[4] ne $id;
|
|
$ver = lc($id);
|
|
$ver =~ s/.*(........)$/$1/;
|
|
$rel = sprintf("%08x", $line[5]);
|
|
last;
|
|
}
|
|
$names{"gpg-pubkey-$ver-$rel"} = $id;
|
|
}
|
|
close GPG;
|
|
my $n;
|
|
|
|
for $n (sort keys %names) {
|
|
print "writing $n.asc\n";
|
|
system("gpg $keyring --no-secmem-warning --export -a '$names{$n}' >$n.asc");
|
|
}
|