diff options
author | Brian Dolbec <dolsen@gentoo.org> | 2014-02-11 10:33:45 -0800 |
---|---|---|
committer | Brian Dolbec <dolsen@gentoo.org> | 2014-02-11 10:36:25 -0800 |
commit | fe9ab48e320da2f78325b493bf7b41c8799cb019 (patch) | |
tree | a52c0bc35fe666130381d8b5cbeb3e73339a2080 | |
parent | revdep_rebuild/assign.py: Remove dead code. (diff) | |
download | gentoolkit-fe9ab48e320da2f78325b493bf7b41c8799cb019.tar.gz gentoolkit-fe9ab48e320da2f78325b493bf7b41c8799cb019.tar.bz2 gentoolkit-fe9ab48e320da2f78325b493bf7b41c8799cb019.zip |
revdep_rebuild: Track and report broken orphaned files.
-rw-r--r-- | pym/gentoolkit/revdep_rebuild/assign.py | 11 | ||||
-rw-r--r-- | pym/gentoolkit/revdep_rebuild/rebuild.py | 13 |
2 files changed, 18 insertions, 6 deletions
diff --git a/pym/gentoolkit/revdep_rebuild/assign.py b/pym/gentoolkit/revdep_rebuild/assign.py index fc10187..8575532 100644 --- a/pym/gentoolkit/revdep_rebuild/assign.py +++ b/pym/gentoolkit/revdep_rebuild/assign.py @@ -23,7 +23,8 @@ def assign_packages(broken, logger, settings): ''' Finds and returns packages that owns files placed in broken. Broken is list of files ''' - assigned = set() + assigned_pkgs = set() + assigned_filenames = set() for group in os.listdir(settings['PKG_DIR']): grppath = settings['PKG_DIR'] + group if not os.path.isdir(grppath): @@ -42,13 +43,17 @@ def assign_packages(broken, logger, settings): m = m.group(1) if m in broken: found = group+'/'+pkg - assigned.add(found) + assigned_pkgs.add(found) + assigned_filenames.add(m) logger.info('\t' + m + ' -> ' + bold(found)) except Exception as e: logger.warn(red(' !! Failed to read ' + f)) logger.warn(red(' !! Error was:' + str(e))) - return assigned + broken_filenames = set(broken) + orphaned = broken_filenames.difference(assigned_filenames) + + return (assigned_pkgs, orphaned) def get_best_match(cpv, cp, logger): diff --git a/pym/gentoolkit/revdep_rebuild/rebuild.py b/pym/gentoolkit/revdep_rebuild/rebuild.py index 81e2b34..21ede45 100644 --- a/pym/gentoolkit/revdep_rebuild/rebuild.py +++ b/pym/gentoolkit/revdep_rebuild/rebuild.py @@ -221,7 +221,7 @@ def main(settings=None, logger=None): and check_temp_files(settings['DEFAULT_TMP_DIR'], logger=logger): libraries, la_libraries, libraries_links, binaries = read_cache( settings['DEFAULT_TMP_DIR']) - assigned = analyse( + assigned, orphaned = analyse( settings=settings, logger=logger, libraries=libraries, @@ -230,12 +230,19 @@ def main(settings=None, logger=None): binaries=binaries, _libs_to_check=_libs_to_check) else: - assigned = analyse(settings, logger, _libs_to_check=_libs_to_check) + assigned, orphaned = analyse(settings, logger, _libs_to_check=_libs_to_check) - if not assigned: + if not assigned and not orphaned: logger.warn('\n' + bold('Your system is consistent')) # return the correct exit code return 0 + elif orphaned: + # blank line for beter visibility of the following lines + logger.warn('') + logger.warn(red('!!! Broken orphaned files: ') + + bold('No installed package was found for the following:')) + for filename in orphaned: + logger.warn(red(' * ') + filename) has_masked = False tmp = [] |