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