From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id BB27A1381F3 for ; Mon, 15 Jul 2013 17:20:08 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 57189E08E0; Mon, 15 Jul 2013 17:20:03 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id CF99CE08E0 for ; Mon, 15 Jul 2013 17:20:02 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id BE00A33DF2D for ; Mon, 15 Jul 2013 17:20:01 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 629C9E468F for ; Mon, 15 Jul 2013 17:20:00 +0000 (UTC) From: "Jauhien Piatlicki" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Jauhien Piatlicki" Message-ID: <1373908789.6c2d91d14a9cc24aafb66e565e4e5581c793b03a.jauhien@gentoo> Subject: [gentoo-commits] proj/g-sorcery:master commit in: g_sorcery/ X-VCS-Repository: proj/g-sorcery X-VCS-Files: g_sorcery/backend.py g_sorcery/fileutils.py g_sorcery/package_db.py X-VCS-Directories: g_sorcery/ X-VCS-Committer: jauhien X-VCS-Committer-Name: Jauhien Piatlicki X-VCS-Revision: 6c2d91d14a9cc24aafb66e565e4e5581c793b03a X-VCS-Branch: master Date: Mon, 15 Jul 2013 17:20:00 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 3b86d629-dd54-4b06-b6bc-c5532341956b X-Archives-Hash: 3402596f160ca77bb9ce1c2f257897ca commit: 6c2d91d14a9cc24aafb66e565e4e5581c793b03a Author: Jauhien Piatlicki zertisa com> AuthorDate: Mon Jul 15 17:19:49 2013 +0000 Commit: Jauhien Piatlicki gmail com> CommitDate: Mon Jul 15 17:19:49 2013 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/g-sorcery.git;a=commit;h=6c2d91d1 g_sorcery/backend: fast overlay digesting added --- g_sorcery/backend.py | 14 ++++++++++++-- g_sorcery/fileutils.py | 2 +- g_sorcery/package_db.py | 3 +++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/g_sorcery/backend.py b/g_sorcery/backend.py index c4d3383..85a6218 100644 --- a/g_sorcery/backend.py +++ b/g_sorcery/backend.py @@ -24,6 +24,7 @@ else: import configparser from .g_collections import Package +from .fileutils import fast_manifest from .exceptions import DependencyError, DigestError from .logger import Logger from .mangler import package_managers @@ -319,6 +320,12 @@ class Backend(object): if os.system("repoman manifest"): raise DigestError('repoman manifest failed') os.chdir(prev) + + def fast_digest(self, overlay, pkgnames): + self.logger.info("fast digesting overlay") + for pkgname in pkgnames: + directory = os.path.join(overlay, pkgname) + fast_manifest(directory) def generate_tree(self, args, config, global_config): self.logger.info("tree generation") @@ -362,9 +369,12 @@ class Backend(object): source = eclass_g.generate(eclass) with open(os.path.join(path, eclass + '.eclass'), 'w') as f: f.write('\n'.join(source)) - - self.digest(overlay) + if args.digest: + self.digest(overlay) + else: + pkgnames = pkg_db.list_catpkg_names() + self.fast_digest(overlay, pkgnames) def install(self, args, config, global_config): self.generate(args, config, global_config) diff --git a/g_sorcery/fileutils.py b/g_sorcery/fileutils.py index 067ea42..d0d154a 100644 --- a/g_sorcery/fileutils.py +++ b/g_sorcery/fileutils.py @@ -197,4 +197,4 @@ def fast_manifest(directory): for m in manifest] with open(os.path.join(directory, "Manifest"), 'w') as f: - f.write('\n'.join(manifest)) + f.write('\n'.join(manifest) + '\n') diff --git a/g_sorcery/package_db.py b/g_sorcery/package_db.py index c42aa30..b6db2ba 100644 --- a/g_sorcery/package_db.py +++ b/g_sorcery/package_db.py @@ -489,6 +489,9 @@ class PackageDB(object): res = [x.split('/')[1] for x in self.database if x.split('/')[0] == category] return res + def list_catpkg_names(self): + return list(self.database) + def list_package_versions(self, category, name): """ List package versions.