Gentoo Archives: gentoo-commits

From: Slava Bacherikov <slava@××××××××××××××.ua>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/management/commands/
Date: Thu, 31 May 2012 15:28:59
Message-Id: 1338478120.b25a9c9e270db980fb5cdc4dceb6299b4ea90aba.bacher09@gentoo
1 commit: b25a9c9e270db980fb5cdc4dceb6299b4ea90aba
2 Author: Slava Bacherikov <slava <AT> bacher09 <DOT> org>
3 AuthorDate: Thu May 31 15:28:40 2012 +0000
4 Commit: Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> ua>
5 CommitDate: Thu May 31 15:28:40 2012 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=b25a9c9e
7
8 Add scaning for keywords.
9
10 ---
11 .../packages/management/commands/scanpackages.py | 20 ++++++++++++++++++++
12 1 files changed, 20 insertions(+), 0 deletions(-)
13
14 diff --git a/gpackages/apps/packages/management/commands/scanpackages.py b/gpackages/apps/packages/management/commands/scanpackages.py
15 index ea6a3ef..6db27e4 100644
16 --- a/gpackages/apps/packages/management/commands/scanpackages.py
17 +++ b/gpackages/apps/packages/management/commands/scanpackages.py
18 @@ -93,6 +93,25 @@ class Command(BaseCommand):
19 geted_uses.add(use.name)
20 return uses_objects
21
22 + arches_cache = {}
23 + def get_keywords_objects(ebuild, ebuild_object):
24 + keywords_list = []
25 + for keyword in ebuild.get_keywords():
26 + keyword_object = models.Keyword(status = keyword.status,
27 + ebuild = ebuild_object)
28 +
29 + if keyword.arch in arches_cache:
30 + arch = arches_cache[keyword.arch]
31 + else:
32 + arch, created = models.ArchesModel.objects.get_or_create(name = keyword.arch)
33 + arches_cache[keyword.arch] = arch
34 +
35 + keyword_object.arch = arch
36 + keywords_list.append(keyword_object)
37 +
38 + models.Keyword.objects.bulk_create(keywords_list)
39 +
40 +
41
42
43 st = datetime.datetime.now()
44 @@ -110,6 +129,7 @@ class Command(BaseCommand):
45 # Add licenses
46 ebuild_object.licenses.add(*get_licenses_objects(ebuild))
47 ebuild_object.use_flags.add(*get_uses_objects(ebuild))
48 + get_keywords_objects(ebuild, ebuild_object)
49
50
51 print (datetime.datetime.now() - st).total_seconds()