commit 3482f3141eb1ecc9cc44d7b6d5af359960a49e73
Author: Arkadiusz Miƛkiewicz <[email protected]>
Date:   Fri Nov 28 12:13:27 2014 +0100

    Parallelize initpackage operation.

 slug.py | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)
---
diff --git a/slug.py b/slug.py
index fa8fd89..914e894 100755
--- a/slug.py
+++ b/slug.py
@@ -108,15 +108,25 @@ def fetch_package(gitrepo, ref2fetch, options):
 def fetch_packages(options, return_all=False):
     refs = getrefs(options.branch, options.repopattern)
     print('Read remotes data')
+    pkgs_new = []
+    if options.newpkgs:
+        for pkgdir in sorted(refs.heads):
+            gitdir = os.path.join(options.packagesdir, pkgdir, '.git')
+            if not os.path.isdir(gitdir):
+                pkgs_new.append(pkgdir)
+
+        pool = WorkerPool(options.jobs, pool_worker_init)
+        try:
+            pool.starmap(initpackage, zip(pkgs_new, [options] * len(pkgs_new)))
+        except KeyboardInterrupt:
+            pool.terminate()
+        else:
+            pool.close()
+        pool.join()
+
     args = []
     for pkgdir in sorted(refs.heads):
-        gitdir = os.path.join(options.packagesdir, pkgdir, '.git')
-        if not os.path.isdir(gitdir):
-            if options.newpkgs:
-                gitrepo = initpackage(pkgdir, options)
-            else:
-                continue
-        elif options.omitexisting:
+        if options.omitexisting and pkgdir not in pkgs_new:
             continue
         else:
             gitrepo = GitRepo(os.path.join(options.packagesdir, pkgdir))
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/projects/git-slug.git/commitdiff/d9fdf7d60e5aea39f9ac7065a09a645261fc712b

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to