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)
next 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