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 23BED1381F3 for ; Sun, 15 Sep 2013 17:46:15 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 2E12AE0C23; Sun, 15 Sep 2013 17:46:11 +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 A86C0E0C28 for ; Sun, 15 Sep 2013 17:46:10 +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 9F78933EAE6 for ; Sun, 15 Sep 2013 17:46:09 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 536CDE545E for ; Sun, 15 Sep 2013 17:46:08 +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: <1379267150.c78429b58c5c7fb038a03f3ba8db237dcdfd9070.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 X-VCS-Directories: g_sorcery/ X-VCS-Committer: jauhien X-VCS-Committer-Name: Jauhien Piatlicki X-VCS-Revision: c78429b58c5c7fb038a03f3ba8db237dcdfd9070 X-VCS-Branch: master Date: Sun, 15 Sep 2013 17:46:08 +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: da96eae8-11a6-4e68-929f-7f03e9782590 X-Archives-Hash: 3a90a6664e57797cfa7ab8e86d326b31 commit: c78429b58c5c7fb038a03f3ba8db237dcdfd9070 Author: Jauhien Piatlicki (jauhien) gmail com> AuthorDate: Sun Sep 15 17:45:50 2013 +0000 Commit: Jauhien Piatlicki gmail com> CommitDate: Sun Sep 15 17:45:50 2013 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/g-sorcery.git;a=commit;h=c78429b5 g_sorcery/backend: add checking for installed overlays and fix overlay names in masters --- g_sorcery/backend.py | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/g_sorcery/backend.py b/g_sorcery/backend.py index 76c8cd2..fb5e698 100644 --- a/g_sorcery/backend.py +++ b/g_sorcery/backend.py @@ -14,6 +14,8 @@ import argparse import os +import portage + from .compatibility import py2k if py2k: @@ -106,6 +108,7 @@ class Backend(object): else: overlay = config['default_overlay'] overlay = args.overlay + overlay = os.path.abspath(overlay) return overlay def _get_package_db(self, args, config, global_config): @@ -473,9 +476,31 @@ class Backend(object): masters = elist(["gentoo"]) else: masters = elist(config["repositories"][args.repository]["masters"]) + + overlays = FileJSON("/var/lib/g-sorcery", "overlays.json", []) + overlays_old_info = overlays.read() + overlays_info = {} + masters_overlays = elist() + portage_overlays = [repo.location for repo in portage.settings.repositories] + + for repo, info in overlays_old_info.items(): + if info["path"] in portage_overlays: + overlays_info[repo] = info + + overlays.write(overlays_info) + + for repo in masters: + if repo != "gentoo": + if not repo in overlays_info: + self.logger.error("Master repository " + repo + " not available on your system") + self.logger.error("Please, add it with layman -a " + repo) + return -1 + masters_overlays.append(overlays_info[repo]["repo-name"]) + + overlays_info[args.repository] = {"repo-name": os.path.basename(overlay), "path": overlay} with open(os.path.join(overlay, 'metadata', 'layout.conf'), 'w') as f: f.write("repo-name = %s\n" % os.path.basename(overlay)) - f.write("masters = %s\n" % masters) + f.write("masters = %s\n" % masters_overlays) if args.digest: ebuild_g = self.ebuild_g_with_digest_class(pkg_db) @@ -531,6 +556,7 @@ class Backend(object): else: pkgnames = catpkg_names self.fast_digest(overlay, pkgnames) + overlays.write(overlays_info) def install(self, args, config, global_config): """