summaryrefslogtreecommitdiff
path: root/pym
diff options
context:
space:
mode:
authorBrian Dolbec <dolsen@gentoo.org>2014-02-18 18:30:20 -0800
committerBrian Dolbec <dolsen@gentoo.org>2014-02-18 18:30:20 -0800
commitb053a6e175467e0d28854e8ec6f008e3dbaf811c (patch)
treee259e59cb5aa8939b7ec7fc1e76bb999b2608a5e /pym
parent8cc0df2e105ae75edf81fd9133511b8a8edb8815 (diff)
downloadgentoolkit-b053a6e175467e0d28854e8ec6f008e3dbaf811c.tar.gz
revdep_rebuild: Fix pkgs to merge being incorrectly filtered.
Move masked package filtering to a function. Relocate the masking check to rebuild() only for exact version rebuilds. Filtering was already done in get_slotted_cps().
Diffstat (limited to 'pym')
-rw-r--r--pym/gentoolkit/revdep_rebuild/rebuild.py26
-rw-r--r--pym/gentoolkit/revdep_rebuild/stuff.py26
2 files changed, 32 insertions, 20 deletions
diff --git a/pym/gentoolkit/revdep_rebuild/rebuild.py b/pym/gentoolkit/revdep_rebuild/rebuild.py
index 3e91058..ea0c25a 100644
--- a/pym/gentoolkit/revdep_rebuild/rebuild.py
+++ b/pym/gentoolkit/revdep_rebuild/rebuild.py
@@ -20,13 +20,13 @@ import os
import sys
import getopt
import logging
-from portage.output import bold, red, blue, yellow, green, nocolor
+from portage.output import bold, red, blue, yellow, nocolor
from .analyse import analyse
-from .stuff import get_masking_status
from .cache import check_temp_files, read_cache
from .assign import get_slotted_cps
from .settings import DEFAULTS
+from .stuff import filter_masked
from . import __version__
@@ -143,9 +143,11 @@ def rebuild(logger, assigned, settings):
args = settings['pass_through_options']
if settings['EXACT']:
- emerge_command = '=' + ' ='.join(assigned)
+ _assigned = filter_masked(assigned, logger)
+ emerge_command = '=' + ' ='.join(_assigned)
else:
- emerge_command = ' '.join(get_slotted_cps(assigned, logger))
+ _assigned = get_slotted_cps(assigned, logger)
+ emerge_command = ' '.join(_assigned)
if settings['PRETEND']:
args += ' --pretend'
if settings['VERBOSITY'] >= 2:
@@ -253,22 +255,6 @@ def main(settings=None, logger=None):
for filename in orphaned:
logger.warn(red('\t* ') + filename)
- has_masked = False
- tmp = []
- for ebuild in assigned:
- if get_masking_status(ebuild):
- has_masked = True
- logger.warn(' !!! ' + red('All ebuilds that could satisfy: ') +
- green(ebuild) + red(' have been masked'))
- else:
- tmp.append(ebuild)
- assigned = tmp
-
- if has_masked:
- logger.info('\t' + red('* ') +
- 'Unmask all ebuild(s) listed above and call revdep-rebuild '
- 'again or manually emerge given packages.')
-
success = rebuild(logger, assigned, settings)
logger.debug("rebuild return code = %i" %success)
return success
diff --git a/pym/gentoolkit/revdep_rebuild/stuff.py b/pym/gentoolkit/revdep_rebuild/stuff.py
index e0fc7b5..cc3da7b 100644
--- a/pym/gentoolkit/revdep_rebuild/stuff.py
+++ b/pym/gentoolkit/revdep_rebuild/stuff.py
@@ -8,6 +8,7 @@ from __future__ import print_function
import subprocess
import portage
+from portage.output import green, red
# util. functions
@@ -75,6 +76,31 @@ def _match_str_in_list(lst, stri):
return False
+def filter_masked(assigned, logger):
+ '''Filter out masked pkgs/ebuilds'''
+
+ def is_masked(ebuild):
+ if get_masking_status(ebuild):
+ logger.warn(' !!! ' + red('All ebuilds that could satisfy: ') +
+ green(ebuild) + red(' have been masked'))
+ return True
+ return False
+
+ has_masked = False
+ tmp = []
+ for ebuild in assigned:
+ if not is_masked(ebuild):
+ tmp.append(ebuild)
+ else:
+ has_masked = True
+ if has_masked:
+ logger.info('\t' + red('* ') +
+ 'Unmask all ebuild(s) listed above and call revdep-rebuild '
+ 'again or manually emerge given packages.')
+ return tmp
+
+
+
if __name__ == '__main__':
print("There is nothing to run here.")