commit: 1bc0206dc67c40cabdef63dd18ec3fe499c4e6eb Author: cvkbtzx <cvkbtzx <AT> users <DOT> noreply <DOT> github <DOT> com> AuthorDate: Sun Sep 16 13:51:04 2018 +0000 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> CommitDate: Mon Aug 19 03:40:03 2019 +0000 URL: https://gitweb.gentoo.org/proj/gentoolkit.git/commit/?id=1bc0206d
revdep-rebuild: Fix pass_through_options to handle args containing spaces Signed-off-by: Zac Medico <zmedico <AT> gentoo.org> pym/gentoolkit/revdep_rebuild/rebuild.py | 21 ++++++++++----------- pym/gentoolkit/revdep_rebuild/settings.py | 4 ++-- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/pym/gentoolkit/revdep_rebuild/rebuild.py b/pym/gentoolkit/revdep_rebuild/rebuild.py index 5408298..3f152e7 100644 --- a/pym/gentoolkit/revdep_rebuild/rebuild.py +++ b/pym/gentoolkit/revdep_rebuild/rebuild.py @@ -65,34 +65,33 @@ def init_logger(settings): def rebuild(logger, assigned, settings): """rebuilds the assigned pkgs""" - args = settings['pass_through_options'] + args = list(settings['pass_through_options']) if settings['EXACT']: _assigned = filter_masked(assigned, logger) - emerge_command = '=' + ' ='.join(_assigned) + emerge_command = ['='+a for a in _assigned] else: _assigned = get_slotted_cps(assigned, logger) - emerge_command = ' '.join(_assigned) + emerge_command = [a for a in _assigned] if settings['PRETEND']: - args += ' --pretend' + args.append('--pretend') if settings['VERBOSITY'] >= 2: - args += ' --verbose' + args.append('--verbose') elif settings['VERBOSITY'] < 1: - args += ' --quiet' + args.append('--quiet') if settings['nocolor']: - args += ' --color n' + args.extend(['--color', 'n']) if len(emerge_command) == 0: logger.warning(bold('\nThere is nothing to emerge. Exiting.')) return 0 logger.warning(yellow( - '\nemerge') + args + + '\nemerge') + ' ' + ' '.join(args) + ' --oneshot --complete-graph=y ' + - bold(emerge_command)) + bold(' '.join(emerge_command))) stime = current_milli_time() - _args = 'emerge ' + args + ' --oneshot --complete-graph=y ' + emerge_command - _args = _args.split() + _args = ['emerge'] + args + ['--oneshot', '--complete-graph=y'] + emerge_command success = subprocess.call(_args) ftime = current_milli_time() logger.debug("\trebuild(); emerge call for %d ebuilds took: %s seconds" diff --git a/pym/gentoolkit/revdep_rebuild/settings.py b/pym/gentoolkit/revdep_rebuild/settings.py index 81e9c64..b0a9f61 100644 --- a/pym/gentoolkit/revdep_rebuild/settings.py +++ b/pym/gentoolkit/revdep_rebuild/settings.py @@ -46,7 +46,7 @@ DEFAULTS = { 'debug': False, 'no-ld-path': False, 'no-order': False, - 'pass_through_options': '', + 'pass_through_options': [], 'stdout': sys.stdout, 'stdin': sys.stdin, 'stderr': sys.stderr @@ -121,7 +121,7 @@ def parse_options(): if args.library: settings['library'].update(set(args.library)) settings['USE_TMP_FILES'] = not args.ignore - settings['pass_through_options'] = " " + " ".join(args.portage_options) + settings['pass_through_options'].extend(args.portage_options) return settings