aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'grumpy/models.py')
-rw-r--r--grumpy/models.py26
1 files changed, 17 insertions, 9 deletions
diff --git a/grumpy/models.py b/grumpy/models.py
index 49b58ee..31127a0 100644
--- a/grumpy/models.py
+++ b/grumpy/models.py
@@ -85,6 +85,11 @@ class Ebuild(db.Model):
"""Update ebuild values from ebuild_src."""
self.__init__(ebuild_src)
+ def rename(self, key):
+ self.cpv = "%s-%s" % (self.package.key, self.version)
+ if self.revision > 0:
+ self.cpv = "%s-r%d" % (self.cpv, self.revision)
+
def _parse_iuse(self, ebuild_src):
"""Returns list of USE flags from ebuild_src."""
return ','.join([f for f in ebuild_src.iuse if f[0] not in ('+','-')])
@@ -213,19 +218,22 @@ class Package(db.Model):
out.append(Herd(herd))
return out
+ def rename(self, key):
+ """Rename a package and all its ebuilds"""
+ # Look up or create new category
+ cat = key.split('/')[0]
+ c = Category.query.filter_by(name=cat).first()
+ if not c:
+ c = Category(cat)
+ self.key = key
+ self.category = c
+ for ebuild in self.ebuilds.values():
+ ebuild.rename(key)
+
def sync(self, ebuild_src, mtime=time.time()):
"""Update package values from ebuild_src."""
self.__init__(ebuild_src, mtime)
-# def rename(self, newcat, newpkg):
-# """Rename package and its ebuilds"""
-# cp = "%s/%s" % (newpkg, newcat)
-# self.cat = newcat
-# self.pkg = newpkg
-# self.cp = cp
-# for ebuild in self.ebuilds:
-# ebuild.cpv = "%s-%s" % (cp, ebuild.version)
-
class Category(db.Model):
"""Represents portage categories"""