public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Jauhien Piatlicki" <piatlicki@gmail.com>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/g-sorcery:master commit in: g_sorcery/
Date: Sun, 15 Sep 2013 17:46:08 +0000 (UTC)	[thread overview]
Message-ID: <1379267150.c78429b58c5c7fb038a03f3ba8db237dcdfd9070.jauhien@gentoo> (raw)

commit:     c78429b58c5c7fb038a03f3ba8db237dcdfd9070
Author:     Jauhien Piatlicki (jauhien) <piatlicki <AT> gmail <DOT> com>
AuthorDate: Sun Sep 15 17:45:50 2013 +0000
Commit:     Jauhien Piatlicki <piatlicki <AT> gmail <DOT> 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):
         """


             reply	other threads:[~2013-09-15 17:46 UTC|newest]

Thread overview: 86+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-15 17:46 Jauhien Piatlicki [this message]
  -- strict thread matches above, loose matches on Subject: below --
2023-02-24 18:02 [gentoo-commits] proj/g-sorcery:master commit in: g_sorcery/ Ulrich Müller
2015-08-18 18:59 Jauhien Piatlicki
2015-08-18 10:41 [gentoo-commits] proj/g-sorcery:dev " Jauhien Piatlicki
2015-08-18 10:42 ` [gentoo-commits] proj/g-sorcery:master " Jauhien Piatlicki
2015-04-22  7:35 Jauhien Piatlicki
2015-04-20 21:36 [gentoo-commits] proj/g-sorcery:dev " Jauhien Piatlicki
2015-04-22  7:35 ` [gentoo-commits] proj/g-sorcery:master " Jauhien Piatlicki
2014-11-24 14:25 [gentoo-commits] proj/g-sorcery:dev " Jauhien Piatlicki
2014-11-24 14:25 ` [gentoo-commits] proj/g-sorcery:master " Jauhien Piatlicki
2013-09-20 15:09 Jauhien Piatlicki
2013-09-19 23:21 Jauhien Piatlicki
2013-09-18 22:09 Jauhien Piatlicki
2013-09-16 15:05 Jauhien Piatlicki
2013-09-16 14:33 Jauhien Piatlicki
2013-09-16 14:33 Jauhien Piatlicki
2013-09-15 22:38 Jauhien Piatlicki
2013-09-15 18:08 Jauhien Piatlicki
2013-09-15 17:46 Jauhien Piatlicki
2013-09-05 21:29 Jauhien Piatlicki
2013-09-04 23:52 Jauhien Piatlicki
2013-09-04 18:14 Jauhien Piatlicki
2013-09-04 18:03 Jauhien Piatlicki
2013-09-04 18:03 Jauhien Piatlicki
2013-09-04 13:37 Jauhien Piatlicki
2013-09-01 22:12 Jauhien Piatlicki
2013-08-12  0:36 Jauhien Piatlicki
2013-08-02 10:18 Jauhien Piatlicki
2013-08-01 15:58 Jauhien Piatlicki
2013-08-01 15:58 Jauhien Piatlicki
2013-08-01 15:58 Jauhien Piatlicki
2013-08-01 15:58 Jauhien Piatlicki
2013-08-01 15:58 Jauhien Piatlicki
2013-08-01 15:58 Jauhien Piatlicki
2013-08-01 12:55 Jauhien Piatlicki
2013-08-01 12:39 Jauhien Piatlicki
2013-08-01 12:39 Jauhien Piatlicki
2013-08-01 12:39 Jauhien Piatlicki
2013-08-01 12:39 Jauhien Piatlicki
2013-08-01 12:39 Jauhien Piatlicki
2013-08-01 12:39 Jauhien Piatlicki
2013-08-01 12:39 Jauhien Piatlicki
2013-08-01 12:39 Jauhien Piatlicki
2013-07-31 23:29 Jauhien Piatlicki
2013-07-23 23:13 Jauhien Piatlicki
2013-07-23 23:13 Jauhien Piatlicki
2013-07-19 14:44 Jauhien Piatlicki
2013-07-19 11:10 Jauhien Piatlicki
2013-07-18 17:26 Jauhien Piatlicki
2013-07-18 12:18 Jauhien Piatlicki
2013-07-18 12:18 Jauhien Piatlicki
2013-07-18 10:53 Jauhien Piatlicki
2013-07-17 17:05 Jauhien Piatlicki
2013-07-17  8:06 Jauhien Piatlicki
2013-07-16 23:09 Jauhien Piatlicki
2013-07-16 23:09 Jauhien Piatlicki
2013-07-15 17:20 Jauhien Piatlicki
2013-07-15 16:33 Jauhien Piatlicki
2013-07-15  0:18 Jauhien Piatlicki
2013-07-14 23:47 Jauhien Piatlicki
2013-07-13 23:35 Jauhien Piatlicki
2013-07-13 22:22 Jauhien Piatlicki
2013-07-13 15:12 Jauhien Piatlicki
2013-07-13 15:12 Jauhien Piatlicki
2013-07-04 20:24 Jauhien Piatlicki
2013-07-03 23:49 Jauhien Piatlicki
2013-07-03 23:49 Jauhien Piatlicki
2013-07-03 23:32 Jauhien Piatlicki
2013-07-03 22:54 Jauhien Piatlicki
2013-07-03 22:54 Jauhien Piatlicki
2013-07-03 22:54 Jauhien Piatlicki
2013-07-03 22:54 Jauhien Piatlicki
2013-07-03 22:54 Jauhien Piatlicki
2013-07-02 17:30 Jauhien Piatlicki
2013-07-02 12:39 Jauhien Piatlicki
2013-07-02  8:39 Jauhien Piatlicki
2013-07-01  0:07 Jauhien Piatlicki
2013-06-30 23:29 Jauhien Piatlicki
2013-06-29 14:16 Jauhien Piatlicki
2013-06-29 12:13 Jauhien Piatlicki
2013-06-29 12:13 Jauhien Piatlicki
2013-06-24 21:09 Jauhien Piatlicki
2013-06-24 21:09 Jauhien Piatlicki
2013-06-23  0:44 Jauhien Piatlicki
2013-06-23  0:44 Jauhien Piatlicki
2013-06-23  0:44 Jauhien Piatlicki
2013-06-20 23:44 Jauhien Piatlicki
2013-06-20 23:21 Jauhien Piatlicki
2013-06-20 22:53 Jauhien Piatlicki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1379267150.c78429b58c5c7fb038a03f3ba8db237dcdfd9070.jauhien@gentoo \
    --to=piatlicki@gmail.com \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox