extras-buildsys/utils/pushscript Utils.py, 1.12, 1.13 Push.py, 1.36, 1.37

Michael Schwendt (mschwendt) fedora-extras-commits at redhat.com
Fri Mar 2 20:41:28 UTC 2007


Author: mschwendt

Update of /cvs/fedora/extras-buildsys/utils/pushscript
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv15200

Modified Files:
	Utils.py Push.py 
Log Message:
Add the push option -c which enables "continue-mode", where no
new packages are pushed before completing with the repobuild,
repoprune, multilib, repoview, build report stuff.




Index: Utils.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/utils/pushscript/Utils.py,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- Utils.py	27 Feb 2007 23:11:02 -0000	1.12
+++ Utils.py	2 Mar 2007 20:41:26 -0000	1.13
@@ -228,6 +228,14 @@
     return False
 
 
+def is_any_repo_changed(cfg,dist,reporoot):
+    for repodir in get_std_repodirs(cfg,dist,reporoot):
+        if is_repo_changed(repodir):
+            debugprint("Dist %s (%s) was changed" % (dist, repodir))
+            return True
+    return False
+
+
 def get_std_repodirs(cfg,dist,reporoot):
     """return list of all repository directories (below reporoot) for
     this distribution version"""


Index: Push.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/utils/pushscript/Push.py,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- Push.py	2 Mar 2007 16:40:05 -0000	1.36
+++ Push.py	2 Mar 2007 20:41:26 -0000	1.37
@@ -38,6 +38,7 @@
 REPO_LOCKFILE_NAME = '.repo-update.lock'
 
 class opts:
+    cont_mode = False
     force = False
 
 ts = rpmUtils.transaction.initReadOnlyTransaction()
@@ -246,20 +247,15 @@
     destroot = os.path.join(cfg.treedir, dist)
     if not DEBUG and not os.path.exists(destroot):
         os.makedirs(destroot)
-    changed = False
     
-    for repodir in Utils.get_std_repodirs(cfg,dist,destroot):
-        # We check for changes already here in case the repo has changed
-        # due to external activities such as removing files etc, and will
-        # recheck it again later if needed when we're done with this sign
-        # batch.
-        if not changed:
-            changed = Utils.is_repo_changed(repodir)
-            if changed:
-                print "Dist %s (%s) was externally changed" % (dist, repodir)
-        if not DEBUG and not os.path.exists(repodir):
-            os.makedirs(repodir)
+    # We check for changes already here in case the repo has changed
+    # due to external activities such as removing files etc, and will
+    # recheck it again later if needed when we're done with this sign
+    # batch.
+    changed = Utils.is_any_repo_changed(cfg,dist,destroot)
 
+    Utils.make_std_repodirs(cfg,dist,destroot)
+    
     repolockname = os.path.join(needsignroot,REPO_LOCKFILE_NAME)
     repolock = LockFile(name=repolockname,blocking=True)
     try:
@@ -356,11 +352,7 @@
 
     # All done, now check if something changed unless we already know it did:
     if not changed:
-        for repodir in Utils.get_std_repodirs(cfg,dist,destroot):
-            changed = Utils.is_repo_changed(repodir)
-            if changed:
-                Utils.debugprint("Dist %s (%s) was changed" % (dist, repodir))
-                break
+        changed = Utils.is_any_repo_changed(cfg,dist,destroot)
 
     return 0, changed
 
@@ -433,10 +425,13 @@
 
 # ====================================================================
 
+def usage():
+    print 'Usage: %s <project> <release|all> [release]...\n' % os.path.basename(sys.argv[0])
+    sys.exit(errno.EINVAL)
+
 if __name__ == '__main__':
     if len(sys.argv) < 3:
-        print 'Usage: %s <project> <release|all> [release]...\n' % os.path.basename(sys.argv[0])
-        sys.exit(errno.EINVAL)
+        usage()
 
     cfg = Utils.load_config_module(sys.argv[1])
 
@@ -445,6 +440,9 @@
     if cfg.opts.signkeycheck:
         Utils.sign_key_check(cfg.signkeyname)
 
+    if '-c' in sys.argv[2:]:
+        sys.argv.remove('-c')
+        opts.cont_mode = True  # don't push new packages
     if '-f' in sys.argv[2:]:
         sys.argv.remove('-f')
         opts.force = True
@@ -465,6 +463,8 @@
         if d not in diststopush:
             diststopush.append(d)
     Utils.debugprint(diststopush)
+    if not len(diststopush):
+        usage()
 
     if not os.path.exists(cfg.rundir):
         os.makedirs(cfg.rundir)
@@ -485,7 +485,10 @@
     mustfinish = []   # dists with pending build report
     totalchanges = 0
     for dist in diststopush:
-        whitelist = ['.*']  # all (regexp)
+        if opts.cont_mode:  # only complete previously pushed pkgs
+            whitelist = []  # none
+        else:
+            whitelist = ['.*']  # all (regexp)
         if dist in cfg.frozendists:
             whitelist = []
         result, repochanged = copy_sign_move(dist,whitelist)




More information about the fedora-extras-commits mailing list