diff options
author | Brian Dolbec <dolsen@gentoo.org> | 2012-07-22 17:50:39 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2012-07-22 17:50:39 -0700 |
commit | 9e19ac0a16a57f3dded8124e650fb6bf6f3d00be (patch) | |
tree | 721568bac79a9c02abc556ca8981c4373dac264c /pym/portage/emaint/modules/resume/resume.py | |
parent | 8f9ba227869775cf7f35037283e88e4cee047703 (diff) | |
download | portage-9e19ac0a16a57f3dded8124e650fb6bf6f3d00be.tar.gz portage-9e19ac0a16a57f3dded8124e650fb6bf6f3d00be.tar.bz2 portage-9e19ac0a16a57f3dded8124e650fb6bf6f3d00be.zip |
emaint: split into separate modules
Diffstat (limited to 'pym/portage/emaint/modules/resume/resume.py')
-rw-r--r-- | pym/portage/emaint/modules/resume/resume.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/pym/portage/emaint/modules/resume/resume.py b/pym/portage/emaint/modules/resume/resume.py new file mode 100644 index 000000000..1bada5288 --- /dev/null +++ b/pym/portage/emaint/modules/resume/resume.py @@ -0,0 +1,58 @@ +# Copyright 2005-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +import portage + + +class CleanResume(object): + + short_desc = "Discard emerge --resume merge lists" + + def name(): + return "cleanresume" + name = staticmethod(name) + + def check(self, **kwargs): + onProgress = kwargs.get('onProgress', None) + messages = [] + mtimedb = portage.mtimedb + resume_keys = ("resume", "resume_backup") + maxval = len(resume_keys) + if onProgress: + onProgress(maxval, 0) + for i, k in enumerate(resume_keys): + try: + d = mtimedb.get(k) + if d is None: + continue + if not isinstance(d, dict): + messages.append("unrecognized resume list: '%s'" % k) + continue + mergelist = d.get("mergelist") + if mergelist is None or not hasattr(mergelist, "__len__"): + messages.append("unrecognized resume list: '%s'" % k) + continue + messages.append("resume list '%s' contains %d packages" % \ + (k, len(mergelist))) + finally: + if onProgress: + onProgress(maxval, i+1) + return messages + + def fix(self, **kwargs): + onProgress = kwargs.get('onProgress', None) + delete_count = 0 + mtimedb = portage.mtimedb + resume_keys = ("resume", "resume_backup") + maxval = len(resume_keys) + if onProgress: + onProgress(maxval, 0) + for i, k in enumerate(resume_keys): + try: + if mtimedb.pop(k, None) is not None: + delete_count += 1 + finally: + if onProgress: + onProgress(maxval, i+1) + if delete_count: + mtimedb.commit() |