diff options
Diffstat (limited to 'pym')
| -rw-r--r-- | pym/gentoolkit/revdep_rebuild/rebuild.py | 26 | ||||
| -rw-r--r-- | pym/gentoolkit/revdep_rebuild/stuff.py | 26 |
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.") |
