pld-ftp-admin: bin/pfa-signpkg, modules/sign.py - signpkg: allow signing wh...

glen glen at pld-linux.org
Sat Aug 13 07:30:03 CEST 2011


Author: glen                         Date: Sat Aug 13 05:30:03 2011 GMT
Module: pld-ftp-admin                 Tag: HEAD
---- Log message:
- signpkg: allow signing whole tree if no pkgname given

---- Files affected:
pld-ftp-admin/bin:
   pfa-signpkg (1.9 -> 1.10) 
pld-ftp-admin/modules:
   sign.py (1.5 -> 1.6) 

---- Diffs:

================================================================
Index: pld-ftp-admin/bin/pfa-signpkg
diff -u pld-ftp-admin/bin/pfa-signpkg:1.9 pld-ftp-admin/bin/pfa-signpkg:1.10
--- pld-ftp-admin/bin/pfa-signpkg:1.9	Wed Aug  5 09:12:26 2009
+++ pld-ftp-admin/bin/pfa-signpkg	Sat Aug 13 07:29:58 2011
@@ -2,6 +2,7 @@
 # vi: encoding=utf-8 ts=8 sts=4 sw=4 et
 
 import sys, os
+import getopt
 sys.path.insert(0, os.environ['HOME']+'/pld-ftp-admin/modules')
 import ftptree
 import getpass
@@ -10,8 +11,15 @@
 from config import sign_key
 from sign import is_signed, signpkgs
 
-if len(sys.argv) < 3:
-    print >>sys.stderr, "ERR: not enough parameters given"
+try:
+    opts, args = getopt.getopt(sys.argv[1:], '')
+except getopt.GetoptError:
+    print >>sys.stderr, "ERR: options error"
+    print >>sys.stderr, "sign.py tree package1 [package2...]"
+    sys.exit(1)
+
+if len(args) < 1:
+    print >>sys.stderr, "ERR: missing tree name"
     print >>sys.stderr, "sign.py tree package1 [package2...]"
     sys.exit(1)
 
@@ -19,26 +27,39 @@
     print >>sys.stderr, "ERR: sign_key not defined in config"
     sys.exit(1)
 
-checkdir(sys.argv[1])
+treename = args[0]
+packages = args[1:]
+
+checkdir(treename)
 
 ftpio.connect('sign')
 
-if not ftpio.lock(sys.argv[1], True):
-    print >>sys.stderr, "ERR: %s tree already locked" % sys.argv[1]
+if not ftpio.lock(treename, True):
+    print >>sys.stderr, "ERR: %s tree already locked" % treename
     sys.exit(1)
 
 files = []
 try:
-    tree = ftptree.FtpTree(sys.argv[1])
-    tree.mark4moving(sys.argv[2:])
+    if len(packages) < 1:
+        loadall = True
+    else:
+        loadall = False
+
+    # if no files specified, grab whole tree contents
+    tree = ftptree.FtpTree(treename, loadall = loadall)
+    if loadall:
+        # this is hack, should be a param, not access private .loadedpkgs element
+        tree.mark4moving(tree.loadedpkgs)
+    else:
+        tree.mark4moving(packages)
     files = tree.rpmfiles()
 
 except ftptree.SomeError:
     # In case of problems we need to unlock the tree before exiting
-    ftpio.unlock(sys.argv[1])
+    ftpio.unlock(treename)
     sys.exit(1)
 
-ftpio.unlock(sys.argv[1])
+ftpio.unlock(treename)
 
 print "Checking signatures of %d files from %d packages" % (len(files), len(tree.loadedpkgs))
 sign = []

================================================================
Index: pld-ftp-admin/modules/sign.py
diff -u pld-ftp-admin/modules/sign.py:1.5 pld-ftp-admin/modules/sign.py:1.6
--- pld-ftp-admin/modules/sign.py:1.5	Sun Feb 13 15:43:21 2011
+++ pld-ftp-admin/modules/sign.py	Sat Aug 13 07:29:58 2011
@@ -16,7 +16,7 @@
     siginfo = hdr.sprintf(string)
     if siginfo == '(none)':
         return None
-   
+
     return siginfo.split(',')[2].lstrip()
 
 def is_signed(rpm_file):
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/pld-ftp-admin/bin/pfa-signpkg?r1=1.9&r2=1.10&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/pld-ftp-admin/modules/sign.py?r1=1.5&r2=1.6&f=u



More information about the pld-cvs-commit mailing list