public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Slava Bacherikov" <slava@bacherikov.org.ua>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/, gpackages/apps/packages/management/commands/
Date: Wed, 22 Aug 2012 17:55:34 +0000 (UTC)	[thread overview]
Message-ID: <1345569565.fb52b4806558ffcc31630ed0721028f933809b4c.bacher09@gentoo> (raw)

commit:     fb52b4806558ffcc31630ed0721028f933809b4c
Author:     Slava Bacherikov <slava <AT> bacher09 <DOT> org>
AuthorDate: Tue Aug 21 17:19:25 2012 +0000
Commit:     Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> ua>
CommitDate: Tue Aug 21 17:19:25 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=fb52b480

Improve updateebuildmask command

---
 .../management/commands/updateebuildmask.py        |   10 +++++-
 gpackages/apps/packages/scan.py                    |   31 +++++++++++++-------
 2 files changed, 28 insertions(+), 13 deletions(-)

diff --git a/gpackages/apps/packages/management/commands/updateebuildmask.py b/gpackages/apps/packages/management/commands/updateebuildmask.py
index a26554d..15a0ec5 100644
--- a/gpackages/apps/packages/management/commands/updateebuildmask.py
+++ b/gpackages/apps/packages/management/commands/updateebuildmask.py
@@ -10,8 +10,14 @@ class Command(BaseCommand):
             dest='show_time',
             default=True,
             help='Show time of scanning'),
+        make_option('-m', '--update-missing',
+            action='store_true',
+            dest='missing',
+            default=False,
+            help='Add missing ebuilds'),
         )
     args = ''
-    help = 'Will add missing ebuilds'
+    help = 'Will update ebuild mask status'
     def handle(self, *args, **options):
-        Scanner(**options).update_ebuild_mask()
+        missing = options.get('missing', False) # maybe move it to function ?
+        Scanner(**options).update_ebuild_mask(missing = missing)

diff --git a/gpackages/apps/packages/scan.py b/gpackages/apps/packages/scan.py
index 660fcc3..84d73f5 100644
--- a/gpackages/apps/packages/scan.py
+++ b/gpackages/apps/packages/scan.py
@@ -773,27 +773,35 @@ class Scanner(object):
                 models.PackageModel.objects.filter(pk = package_id). \
                     update(latest_ebuild = latest_ebuild)
 
+    def missing_ebuild(self, ebuild):
+        try:
+            package_obj = models.PackageModel.objects. \
+                get(package = ebuild.package)
+
+        except models.PackageModel.DoesNotExist:
+            pass
+        else:
+            # Don't run this for updated packages
+            if package_obj.manifest_hash == ebuild.package.manifest_sha1:
+                self.output('%-44s [%s]M\n', (ebuild, 
+                    ebuild.package.category.porttree_name))
+                self.update_ebuilds(ebuild.package, package_obj)
+
     def add_mising_ebuilds(self):
         for ebuild in porttree.iter_ebuilds():
             try:
                 ebuild_obj = models.EbuildModel.objects.get(ebuild = ebuild)
             except models.EbuildModel.DoesNotExist:
-                self.output('%-44s [%s]\n', (ebuild, 
-                    ebuild.package.category.porttree_name))
-                try:
-                    package_obj = models.PackageModel.objects. \
-                        get(package = ebuild.package)
-
-                except models.PackageModel.DoesNotExist:
-                    pass
-                else:
-                    self.update_ebuilds(ebuild.package, package_obj)
+                self.missing_ebuild(ebuild)
             
-    def update_ebuild_mask(self):
+    def update_ebuild_mask(self, missing = False):
         for ebuild in porttree.iter_ebuilds():
             try:
                 ebuild_obj = models.EbuildModel.objects.get(ebuild = ebuild)
             except models.EbuildModel.DoesNotExist:
+                if missing:
+                    self.missing_ebuild(ebuild)
+
                 continue
             if ebuild_obj.is_hard_masked != ebuild.is_hard_masked:
                 self.output('%-44s [%s]\n', (ebuild,
@@ -801,3 +809,4 @@ class Scanner(object):
 
                 ebuild_obj.is_hard_masked = ebuild.is_hard_masked
                 ebuild_obj.save(force_update = True)
+


             reply	other threads:[~2012-08-22 17:55 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-22 17:55 Slava Bacherikov [this message]
  -- strict thread matches above, loose matches on Subject: below --
2012-08-26 23:00 [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/, gpackages/apps/packages/management/commands/ Slava Bacherikov
2012-07-18 23:03 Slava Bacherikov
2012-07-17  9:42 Slava Bacherikov
2012-07-06 23:09 Slava Bacherikov
2012-07-05 23:27 Slava Bacherikov
2012-06-19  0:12 Slava Bacherikov
2012-06-18 23:00 Slava Bacherikov
2012-06-13 22:15 Slava Bacherikov
2012-06-10 22:23 Slava Bacherikov
2012-06-10 17:51 Slava Bacherikov
2012-06-09 18:19 Slava Bacherikov
2012-06-09 18:19 Slava Bacherikov
2012-06-04 20:09 Slava Bacherikov
2012-06-04 20:09 Slava Bacherikov
2012-06-04 20:09 Slava Bacherikov
2012-06-04 20:09 Slava Bacherikov
2012-06-03 16:19 Slava Bacherikov
2012-06-03 13:19 Slava Bacherikov
2012-06-01 21:28 Slava Bacherikov

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=1345569565.fb52b4806558ffcc31630ed0721028f933809b4c.bacher09@gentoo \
    --to=slava@bacherikov.org.ua \
    --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