diff options
author | Sebastian Pipping <sebastian@pipping.org> | 2017-09-09 15:04:27 +0200 |
---|---|---|
committer | Sebastian Pipping <sebastian@pipping.org> | 2017-09-09 15:04:27 +0200 |
commit | 0bbf21d7c25743e030879ab65af5e432aba2eaa3 (patch) | |
tree | 5f1ae8a92aa142d31170b3918b53ba966ea65d8e | |
parent | equery: size: Fix UnicodeDecodeError (diff) | |
download | gentoolkit-0bbf21d7c25743e030879ab65af5e432aba2eaa3.tar.gz gentoolkit-0bbf21d7c25743e030879ab65af5e432aba2eaa3.tar.bz2 gentoolkit-0bbf21d7c25743e030879ab65af5e432aba2eaa3.zip |
ekeyword: Support sorting keywords without additional changes
-rwxr-xr-x | pym/gentoolkit/ekeyword/ekeyword.py | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/pym/gentoolkit/ekeyword/ekeyword.py b/pym/gentoolkit/ekeyword/ekeyword.py index 170c25b..af37a9a 100755 --- a/pym/gentoolkit/ekeyword/ekeyword.py +++ b/pym/gentoolkit/ekeyword/ekeyword.py @@ -261,15 +261,29 @@ def process_content(ebuild, data, ops, arch_status=None, verbose=0, continue # Ok, we've got it, now let's process things. - old_keywords = set(m.group(3).split()) + old_keywords_original = m.group(3).split() # preserve original order + old_keywords = set(old_keywords_original) new_keywords = process_keywords( old_keywords, ops, arch_status=arch_status) + were_sorted_already = ( + old_keywords_original == sort_keywords(old_keywords_original)) + # Finally let's present the results to the user. - if (new_keywords != old_keywords) or verbose: + if (new_keywords != old_keywords) or \ + (not ops and not were_sorted_already) or verbose: # Only do the diff work if something actually changed. updated = True - old_keywords = sort_keywords(old_keywords) + + if not ops: + # We're sorting only so we want to compare with the + # unsorted original (or changes in order will not show) + old_keywords = old_keywords_original + else: + # We changed keywords so let's diff sorted versions + # so that keywords changes are easy to spot + old_keywords = sort_keywords(old_keywords) + new_keywords = sort_keywords(new_keywords) line = '%s"%s"%s\n' % (m.group(1), ' '.join(new_keywords), m.group(5)) @@ -435,14 +449,12 @@ def args_to_work(args, arch_status=None, _repo='gentoo', quiet=0): """Process |args| into a list of work itmes (ebuild/arches to update)""" work = [] todo_arches = [] - last_todo_arches = None + last_todo_arches = [] for arg in args: if arg.endswith('.ebuild'): if not todo_arches: todo_arches = last_todo_arches - if not todo_arches: - raise ValueError('missing arches to process for %s' % arg) work.append([arg, todo_arches]) last_todo_arches = todo_arches todo_arches = [] @@ -510,7 +522,7 @@ def main(argv): parser = get_parser() opts = parser.parse_args(parse_args) if not work_args: - parser.error('need arches/ebuilds to process') + parser.error('need ebuilds to process') if opts.style == 'auto': if not portage_settings().get('NOCOLOR', 'false').lower() in ('no', 'false'): |