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, 18 Jul 2012 23:03:58 +0000 (UTC)	[thread overview]
Message-ID: <1342652596.a283371444516c287f9110056d2e84fc55c83345.bacher09@gentoo> (raw)

commit:     a283371444516c287f9110056d2e84fc55c83345
Author:     Slava Bacherikov <slava <AT> bacher09 <DOT> org>
AuthorDate: Wed Jul 18 23:03:16 2012 +0000
Commit:     Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> ua>
CommitDate: Wed Jul 18 23:03:16 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=a2833714

Add utility for setting link to latest ebuild in package

---
 .../management/commands/setlatestebuilds.py        |   17 +++++++++++++++++
 gpackages/apps/packages/scan.py                    |   15 +++++++++++++++
 2 files changed, 32 insertions(+), 0 deletions(-)

diff --git a/gpackages/apps/packages/management/commands/setlatestebuilds.py b/gpackages/apps/packages/management/commands/setlatestebuilds.py
new file mode 100644
index 0000000..9b64673
--- /dev/null
+++ b/gpackages/apps/packages/management/commands/setlatestebuilds.py
@@ -0,0 +1,17 @@
+from django.core.management.base import BaseCommand, CommandError
+from packages.scan import Scanner
+from optparse import make_option
+
+
+class Command(BaseCommand):
+    option_list = BaseCommand.option_list + (
+        make_option('--not-show-time',
+            action='store_false',
+            dest='show_time',
+            default=True,
+            help='Show time of scanning'),
+        )
+    args = ''
+    help = 'Will set link to latest ebuilds in package model'
+    def handle(self, *args, **options):
+        Scanner(set_latest_ebuilds = True, **options).scan()

diff --git a/gpackages/apps/packages/scan.py b/gpackages/apps/packages/scan.py
index 1460698..a02975b 100644
--- a/gpackages/apps/packages/scan.py
+++ b/gpackages/apps/packages/scan.py
@@ -133,6 +133,7 @@ class Scanner(object):
         self.is_scan_news = bool_get('scan_news', False)
         self.is_scan_license_text = bool_get('license_text', False)
         self.is_cache_clear = bool_get('cache_clear', False)
+        self.is_set_latest_ebuilds = bool_get('set_latest_ebuilds', False)
 
     def show_time(self):
         "Prints scan time"
@@ -160,6 +161,9 @@ class Scanner(object):
         elif self.s_only_repo_info and len(self.scan_repos_name) > 0:
             self.scan_repo_info_by_names(self.scan_repos_name)
 
+        if self.is_set_latest_ebuilds:
+            self.set_latest_ebuilds_to_package()
+
         if self.scan_global_use_descr:
             self.update_all_globals_uses_descriptions()
 
@@ -724,3 +728,14 @@ class Scanner(object):
                 license.text = smart_unicode(text, errors='ignore')
                 license.save(force_update = True)
 
+    @staticmethod
+    def set_latest_ebuilds_to_package():
+        for package in models.PackageModel.objects.only('pk').iterator():
+            # search latest ebuild should done by version and revison
+            # and database could not allow smart order by version becaouse
+            # version are compared as string
+            ebuilds = package.ebuildmodel_set.only('version', 'revision').all()
+            latest_ebuild = max(ebuilds, key = lambda x: x.version_cmp)
+            # Hack for not update last modified datetime
+            models.PackageModel.objects.filter(pk = package.pk). \
+                update(latest_ebuild = latest_ebuild)



             reply	other threads:[~2012-07-18 23:04 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-18 23:03 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-08-22 17:55 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=1342652596.a283371444516c287f9110056d2e84fc55c83345.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