import ftpio
from config import sign_key
import rpm
+import subprocess
if len(sys.argv) < 3:
print >>sys.stderr, "ERR: not enough parameters given"
return key == sigid[-len(key):]
+def signpkgs(files):
+ if not os.path.isfile('/usr/bin/gpg'):
+ raise OSError, 'Missing gnupg binary'
+ if not os.path.isfile('/bin/rpm'):
+ raise OSError, 'Missing rpm binary'
+
+ cmd = ['/bin/rpm', '--resign']
+ cmd += files
+ rc = subprocess.call(cmd, stdin = subprocess.PIPE, stdout = subprocess.PIPE, stderr = subprocess.PIPE, close_fds = True)
+ if rc != 0:
+ print >>sys.stderr, "package signing failed"
+ sys.exit(rc)
+
try:
tree = ftptree.FtpTree(sys.argv[1]) #, loadall=True)
tree.mark4moving(sys.argv[2:])
files = tree.rpmfiles()
- from pprint import pprint
-
print "Checking signatures of %d files from %d packages" % (len(files), len(tree.loadedpkgs))
sign = []
for file in files:
if len(sign) > 0:
print "Signing %d packages" % len(sign)
+ signpkgs(sign)
else:
print "No packages to sign"