diff options
author | Sebastian Luther <SebastianLuther@gmx.de> | 2010-09-28 15:14:01 +0200 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2010-09-30 17:49:20 -0700 |
commit | e52e31462efae2d5769e51073187c7e10ae122f9 (patch) | |
tree | 8f88e821915211dbd91783c4824e65e546631768 /pym/_emerge/actions.py | |
parent | 5e9feafa13fb91a22acd9f9b36c12362f42e2940 (diff) | |
download | portage-e52e31462efae2d5769e51073187c7e10ae122f9.tar.gz portage-e52e31462efae2d5769e51073187c7e10ae122f9.tar.bz2 portage-e52e31462efae2d5769e51073187c7e10ae122f9.zip |
Get --exclude to work with --depclean and --prune
Thanks to forum member 'krinn' for the suggestion
Diffstat (limited to 'pym/_emerge/actions.py')
-rw-r--r-- | pym/_emerge/actions.py | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py index 92eb18b74..07b5d7b9e 100644 --- a/pym/_emerge/actions.py +++ b/pym/_emerge/actions.py @@ -623,6 +623,7 @@ def calc_depclean(settings, trees, ldpath_mtimes, deselect = myopts.get('--deselect') != 'n' required_sets = {} required_sets['world'] = psets['world'] + excluded_set = InternalPackageSet(initial_atoms=myopts.get('--exclude')) # When removing packages, a temporary version of the world 'selected' # set may be used which excludes packages that are intended to be @@ -675,7 +676,8 @@ def calc_depclean(settings, trees, ldpath_mtimes, # by an argument atom since we don't want to clean any # package if something depends on it. for pkg in vardb: - spinner.update() + if spinner: + spinner.update() try: if args_set.findAtomForPackage(pkg) is None: @@ -741,6 +743,22 @@ def calc_depclean(settings, trees, ldpath_mtimes, protected_set.add("=" + pkg.cpv) continue + if excluded_set: + required_sets['__excluded__'] = InternalPackageSet() + + for pkg in vardb: + if spinner: + spinner.update() + + try: + if excluded_set.findAtomForPackage(pkg): + required_sets['__excluded__'].add("=" + pkg.cpv) + except portage.exception.InvalidDependString as e: + show_invalid_depstring_notice(pkg, + pkg.metadata["PROVIDE"], str(e)) + del e + required_sets['__excluded__'].add("=" + pkg.cpv) + success = resolver._complete_graph(required_sets={myroot:required_sets}) writemsg_level("\b\b... done!\n") |