From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.77) (envelope-from ) id 1SrdID-0005SN-Dd for garchives@archives.gentoo.org; Wed, 18 Jul 2012 23:04:29 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 517C5E064F; Wed, 18 Jul 2012 23:04:02 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 0EC6AE064F for ; Wed, 18 Jul 2012 23:04:01 +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 2DB551B400E for ; Wed, 18 Jul 2012 23:04:00 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 43B64E5442 for ; Wed, 18 Jul 2012 23:03:58 +0000 (UTC) From: "Slava Bacherikov" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Slava Bacherikov" Message-ID: <1342652596.a283371444516c287f9110056d2e84fc55c83345.bacher09@gentoo> Subject: [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/, gpackages/apps/packages/management/commands/ X-VCS-Repository: proj/gentoo-packages X-VCS-Files: gpackages/apps/packages/management/commands/setlatestebuilds.py gpackages/apps/packages/scan.py X-VCS-Directories: gpackages/apps/packages/ gpackages/apps/packages/management/commands/ X-VCS-Committer: bacher09 X-VCS-Committer-Name: Slava Bacherikov X-VCS-Revision: a283371444516c287f9110056d2e84fc55c83345 X-VCS-Branch: master Date: Wed, 18 Jul 2012 23:03:58 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: 634162df-40b8-4f0a-b1fe-ef68efbb4a27 X-Archives-Hash: 34b15c1358c6875dc9a56ab8edbf769d commit: a283371444516c287f9110056d2e84fc55c83345 Author: Slava Bacherikov bacher09 org> AuthorDate: Wed Jul 18 23:03:16 2012 +0000 Commit: Slava Bacherikov bacherikov org ua> CommitDate: Wed Jul 18 23:03:16 2012 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/gentoo-packag= es.git;a=3Dcommit;h=3Da2833714 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 =3D BaseCommand.option_list + ( + make_option('--not-show-time', + action=3D'store_false', + dest=3D'show_time', + default=3DTrue, + help=3D'Show time of scanning'), + ) + args =3D '' + help =3D 'Will set link to latest ebuilds in package model' + def handle(self, *args, **options): + Scanner(set_latest_ebuilds =3D True, **options).scan() diff --git a/gpackages/apps/packages/scan.py b/gpackages/apps/packages/sc= an.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 =3D bool_get('scan_news', False) self.is_scan_license_text =3D bool_get('license_text', False) self.is_cache_clear =3D bool_get('cache_clear', False) + self.is_set_latest_ebuilds =3D bool_get('set_latest_ebuilds', Fa= lse) =20 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) =20 + if self.is_set_latest_ebuilds: + self.set_latest_ebuilds_to_package() + if self.scan_global_use_descr: self.update_all_globals_uses_descriptions() =20 @@ -724,3 +728,14 @@ class Scanner(object): license.text =3D smart_unicode(text, errors=3D'ignore') license.save(force_update =3D True) =20 + @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 becaou= se + # version are compared as string + ebuilds =3D package.ebuildmodel_set.only('version', 'revisio= n').all() + latest_ebuild =3D max(ebuilds, key =3D lambda x: x.version_c= mp) + # Hack for not update last modified datetime + models.PackageModel.objects.filter(pk =3D package.pk). \ + update(latest_ebuild =3D latest_ebuild)