getsigs.pl

来自「subversion-1.4.3-1.tar.gz 配置svn的源码」· PL 代码 · 共 52 行

PL
52
字号
#!/usr/bin/perl# Terribly ugly hack of a script to verify the signatures on the release# tarballs and produce the list of who signed them in the format we use for# the announcements.## To use just run it in the directory with the signatures and tarballs and# pass the version of subversion you want to check.  It assumes gpg is on# you path, if it isn't you should fix that. :D## Script will die if any gpg process returns an error.my $version = $ARGV[0];my @extensions = qw(tar.bz2 tar.gz zip);my %good_sigs;foreach my $extension (@extensions) {  $filename = "subversion-$version.$extension.asc";	my $gpg_output = `gpg --logger-fd 1 --verify $filename`;  if ($? >> 8 ) {	  # gpg exited with a non zero exit value, die with an error 	  print $gpg_output;	  die "BAD SIGNATURE in $filename";	}	foreach my $line (split /\n/, $gpg_output) {		# Extract the keyid from the GPG output.		my ($keyid) = $line =~ /^gpg: Signature made .*? using \w+ key ID (\w+)/;		if (defined($keyid)) {			# Put the resulting key in a hash to remove duplicates.      $good_sigs{$keyid}++; 		}	}}foreach my $keyid (keys %good_sigs) {	my $gpg_output = `gpg --fingerprint $keyid`;	if ($? >> 8 ) {	  # gpg exited with a non zero exit value, die with an error 		print $gpg_output;		die "UNABLE TO GET FINGERPRINT FOR $keyid";	}	my ($long_keyid, $fingerprint, $null, $name) = $gpg_output =~ /^pub\s+(\w+\/\w+)[^\n]*\n\s+Key\sfingerprint\s=((\s+[0-9A-F]{4}){10})\nuid\s+([^<\(]+)\s/;	unless (defined($long_keyid) && defined($name) && defined($fingerprint)) {		# Hmm some value didn't get filled in, error out.		die "Empty value, possible error in gpg output parsing.";	}	print <<"EOL";   $name [$long_keyid] with fingerprint:   $fingerprintEOL}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?