diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-04-19 06:03:38 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-04-19 06:03:38 +0000 |
commit | c1a3d7b49f487ec6865d57697efd9ec750d2bc7f (patch) | |
tree | 77d0a7ac7462c84e745073995cef7e1dcb1b769f | |
parent | 8dbcc983b98ecc78a4396ae98c4219ed5128d5ae (diff) | |
download | portage-c1a3d7b49f487ec6865d57697efd9ec750d2bc7f.tar.gz portage-c1a3d7b49f487ec6865d57697efd9ec750d2bc7f.tar.bz2 portage-c1a3d7b49f487ec6865d57697efd9ec750d2bc7f.zip |
Fix bugs in action_deselect() and add --pretend support.
svn path=/main/trunk/; revision=13364
-rw-r--r-- | pym/_emerge/__init__.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index f8dfaee02..004d13fdf 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -14065,8 +14065,9 @@ def action_deselect(settings, trees, opts, atoms): writemsg_level("World set does not appear to be mutable.\n", level=logging.ERROR, noiselevel=-1) return 1 + pretend = '--pretend' in opts locked = False - if not hasattr(world_set, 'lock'): + if not pretend and hasattr(world_set, 'lock'): world_set.lock() locked = True try: @@ -14078,16 +14079,18 @@ def action_deselect(settings, trees, opts, atoms): # nested set continue for arg_atom in atoms: - if arg_atom.intersects(atom): + if arg_atom.intersects(atom) and \ + not (arg_atom.slot and not atom.slot): discard_atoms.add(atom) - break + break if discard_atoms: for atom in sorted(discard_atoms): print ">>> Removing %s from \"world\" favorites file..." % \ colorize("INFORM", str(atom)) remaining = set(world_set) remaining.difference_update(discard_atoms) - world_set.replace(remaining) + if not pretend: + world_set.replace(remaining) else: print ">>> No matching atoms found in \"world\" favorites file..." finally: @@ -16102,7 +16105,7 @@ def emerge_main(): if portage.secpass < 2: # We've already allowed "--version" and "--help" above. if "--pretend" not in myopts and myaction not in ("search","info"): - need_superuser = not \ + need_superuser = myaction in ('deselect',) or not \ (fetchonly or \ (buildpkgonly and secpass >= 1) or \ myaction in ("metadata", "regen") or \ |