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/, gpackages/apps/packages/management/commands/
Date: Sun, 03 Jun 2012 16:19:32
Message-Id: 1338740345.f7fc2cca4d2f549b2a4bbd19bc9ec8be49c09ba9.bacher09@gentoo
1 commit: f7fc2cca4d2f549b2a4bbd19bc9ec8be49c09ba9
2 Author: Slava Bacherikov <slava <AT> bacher09 <DOT> org>
3 AuthorDate: Sun Jun 3 16:19:05 2012 +0000
4 Commit: Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> ua>
5 CommitDate: Sun Jun 3 16:19:05 2012 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=f7fc2cca
7
8 Add more info about ebuild metadata.
9
10 ---
11 .../packages/management/commands/scanpackages.py | 18 +++++++++++++++++-
12 gpackages/apps/packages/models.py | 6 ++++++
13 2 files changed, 23 insertions(+), 1 deletions(-)
14
15 diff --git a/gpackages/apps/packages/management/commands/scanpackages.py b/gpackages/apps/packages/management/commands/scanpackages.py
16 index b3adb97..f63f0d0 100644
17 --- a/gpackages/apps/packages/management/commands/scanpackages.py
18 +++ b/gpackages/apps/packages/management/commands/scanpackages.py
19 @@ -174,7 +174,6 @@ class Command(BaseCommand):
20 models.Keyword.objects.bulk_create(keywords_list)
21
22
23 -
24 homepages_cache = {}
25 def get_homepages_objects(ebuild):
26 homepages = ebuild.homepages
27 @@ -183,6 +182,22 @@ class Command(BaseCommand):
28
29 st = datetime.datetime.now()
30 herds_cache, maintainers_cache = scan_herds()
31 + def get_maintainers_objects(package):
32 + maintainers = package.metadata.maintainers()
33 + objects = []
34 + for maintainer in maintainers:
35 + if maintainer.email in maintainers_cache:
36 + objects.append(maintainers_cache[maintainer.email])
37 + else:
38 + maintainer_object, created = models.MaintainerModel \
39 + .objects.get_or_create(email = maintainer.email)
40 + if created:
41 + maintainer_object.name = maintainer.name
42 + maintainer_object.save()
43 + objects.append(maintainer_object)
44 + return objects
45 +
46 +
47 def get_herds_objects(package):
48 herds = package.metadata.herds()
49 herds_objects = []
50 @@ -201,6 +216,7 @@ class Command(BaseCommand):
51 print package
52 package_object, package_created = models.PackageModel.objects.get_or_create(package = package, category = category_object)
53 package_object.herds.add(*get_herds_objects(package))
54 + package_object.maintainers.add(*get_maintainers_objects(package))
55 for ebuild in package.iter_ebuilds():
56 ebuild_object = models.EbuildModel()
57 ebuild_object.init_by_ebuild(ebuild)
58
59 diff --git a/gpackages/apps/packages/models.py b/gpackages/apps/packages/models.py
60 index d3ff5f6..0fc1dc0 100644
61 --- a/gpackages/apps/packages/models.py
62 +++ b/gpackages/apps/packages/models.py
63 @@ -122,6 +122,7 @@ class PackageModel(models.Model):
64 mtime = models.DateTimeField(blank = True, null = True)
65
66 herds = models.ManyToManyField(HerdsModel, blank = True)
67 + maintainers = models.ManyToManyField(MaintainerModel, blank = True)
68 # Different versions can have different licenses, or homepages.
69
70 objects = managers.PackageManager()
71 @@ -180,6 +181,11 @@ class EbuildModel(models.Model):
72 homepages = models.ManyToManyField(HomepageModel, blank = True)
73 description = models.TextField(blank = True, null = True)
74
75 + eapi = models.PositiveSmallIntegerField(default = 0)
76 + slot = models.PositiveSmallIntegerField(default = 0)
77 +
78 +
79 +
80 objects = managers.EbuildManager()
81
82 def __init__(self, *args, **kwargs ):