* [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/, gpackages/apps/packages/management/commands/, ...
@ 2012-06-25 22:23 Slava Bacherikov
0 siblings, 0 replies; only message in thread
From: Slava Bacherikov @ 2012-06-25 22:23 UTC (permalink / raw
To: gentoo-commits
commit: cf9ea59200091d3a4dbad379f791d652bc1c797b
Author: Slava Bacherikov <slava <AT> bacher09 <DOT> org>
AuthorDate: Mon Jun 25 21:09:15 2012 +0000
Commit: Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> ua>
CommitDate: Mon Jun 25 21:09:15 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=cf9ea592
Save license groups to database.
---
.../packages/management/commands/scanpackages.py | 5 ++++
gpackages/apps/packages/scan.py | 22 ++++++++++++++++---
.../generic_metadata/license_groups.py | 5 +++-
gpackages/libs/package_info/mixins.py | 7 ++++++
4 files changed, 34 insertions(+), 5 deletions(-)
diff --git a/gpackages/apps/packages/management/commands/scanpackages.py b/gpackages/apps/packages/management/commands/scanpackages.py
index 3809ff4..ce694fe 100644
--- a/gpackages/apps/packages/management/commands/scanpackages.py
+++ b/gpackages/apps/packages/management/commands/scanpackages.py
@@ -39,6 +39,11 @@ class Command(BaseCommand):
dest='delete',
default=True,
help='Not delete'),
+ make_option('--not-license-groups',
+ action='store_false',
+ dest='scan_license_groups',
+ default=True,
+ help='Not scan license groups'),
#make_option('-r', '--repo',
#action='store',
#type="string",
diff --git a/gpackages/apps/packages/scan.py b/gpackages/apps/packages/scan.py
index 0b68c19..b19958d 100644
--- a/gpackages/apps/packages/scan.py
+++ b/gpackages/apps/packages/scan.py
@@ -133,6 +133,7 @@ class Scanner(object):
self.scan_repos_name = tuple(kwargs.get('repos',[]))
self.scan_global_use_descr = bool_get('scan_global_use', False)
self.scan_local_use_descr = bool_get('scan_local_use', False)
+ self.is_scan_license_groups = bool_get('scan_license_groups', False)
def show_time(self):
end = datetime.now()
@@ -163,6 +164,9 @@ class Scanner(object):
if self.scan_local_use_descr:
self.scan_all_uses_description()
+ if self.is_scan_license_groups:
+ self.scan_license_groups()
+
if self.is_show_time:
self.show_time()
@@ -232,8 +236,19 @@ class Scanner(object):
self.maintainers_cache = mo_dict
self.maitainers_cache_loaded = True
-
+ def scan_license_groups(self):
+ self.write('Scaning license groups\n', 3)
+ for group, licenses in portage.license_groups.groups_dict.iteritems():
+ licenses_obj = self.get_licenses_objects(licenses)
+ group_obj, created = models.LicenseGroupModel.objects. \
+ get_or_create(name = group)
+
+ group_obj.licenses.clear()
+ group_obj.licenses.add(*licenses_obj)
+
+ self.output("update license group '%s'\n", group, 2)
+
def scan_herds(self):
self.write('Scaning herds\n', 3)
existent_herds = self.get_existent_herds()
@@ -365,8 +380,7 @@ class Scanner(object):
self.scanpackages(repo, repo_obj, **kwargs)
- def get_licenses_objects(self, ebuild):
- licenses = ebuild.licenses
+ def get_licenses_objects(self, licenses):
return _get_items(licenses, models.LicenseModel, 'name', self.licenses_cache)
def get_uses_objects(self, ebuild):
@@ -424,7 +438,7 @@ class Scanner(object):
def add_related_to_ebuild(self, ebuild, ebuild_object):
# Add licenses
- ebuild_object.licenses.add(*self.get_licenses_objects(ebuild))
+ ebuild_object.licenses.add(*self.get_licenses_objects(ebuild.licenses))
ebuild_object.use_flags.add(*self.get_uses_objects(ebuild))
ebuild_object.homepages.add(*self.get_homepages_objects(ebuild))
self.create_keywords_objects(ebuild, ebuild_object)
diff --git a/gpackages/libs/package_info/generic_metadata/license_groups.py b/gpackages/libs/package_info/generic_metadata/license_groups.py
index dc86f1b..ba4255d 100644
--- a/gpackages/libs/package_info/generic_metadata/license_groups.py
+++ b/gpackages/libs/package_info/generic_metadata/license_groups.py
@@ -1,5 +1,6 @@
from collections import defaultdict
-from ..generic import file_get_content, StrThatIgnoreCase, ToStrMixin
+from ..generic import file_get_content, StrThatIgnoreCase, ToStrMixin, \
+ file_sha1
DEFAULT_FILE_PATH = '/usr/portage/profiles/license_groups'
@@ -100,6 +101,8 @@ class LicenseGroups(ToStrMixin):
"""
return self.reverse_group_dict[license_name]
+ def sha1(self):
+ return file_sha1(self.groups_path)
def __unicode__(self):
return unicode(self.groups_path)
diff --git a/gpackages/libs/package_info/mixins.py b/gpackages/libs/package_info/mixins.py
index 92188ed..610e89e 100644
--- a/gpackages/libs/package_info/mixins.py
+++ b/gpackages/libs/package_info/mixins.py
@@ -11,6 +11,8 @@ from .generic_metadata.herds import Herds
from .generic_metadata.category_metadata import CategoryMetadata
#Package metadata
from .generic_metadata.package_metadata import PackageMetaData
+#License group metadata
+from .generic_metadata.license_groups import LicenseGroups
# Validators
from .validators import validate_url, validate_email, ValidationError
#Generic objects
@@ -85,6 +87,11 @@ class PortageHerdsMixin(object):
"Return new `Herds` object"
return Herds()
+ @cached_property
+ def license_groups(self):
+ "Return new `LicenseGroups` object"
+ return LicenseGroups()
+
def _get_info_by_func(func, path1, path2):
path = os.path.join(path1, path2)
try:
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2012-06-25 22:24 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-06-25 22:23 [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/apps/packages/, gpackages/apps/packages/management/commands/, Slava Bacherikov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox