summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorslis <lis.slawek@gmail.com>2014-02-17 09:48:20 +0100
committerslis <lis.slawek@gmail.com>2014-02-17 09:48:20 +0100
commitb2130a2aca2a202444ddd57ab6fe65f05c5c3571 (patch)
treefe13a8a3049aa5946b1d7abe37a4daf2db6b79c7
parent4d043024d6d94a87dd495d07f4ac645e90812d8a (diff)
downloadgentoolkit-b2130a2aca2a202444ddd57ab6fe65f05c5c3571.tar.gz
Using sets in collect module
-rw-r--r--pym/gentoolkit/revdep_rebuild/analyse.py4
-rw-r--r--pym/gentoolkit/revdep_rebuild/collect.py57
-rw-r--r--pym/gentoolkit/revdep_rebuild/rebuild.py2
3 files changed, 32 insertions, 31 deletions
diff --git a/pym/gentoolkit/revdep_rebuild/analyse.py b/pym/gentoolkit/revdep_rebuild/analyse.py
index d844906..0c22b0e 100644
--- a/pym/gentoolkit/revdep_rebuild/analyse.py
+++ b/pym/gentoolkit/revdep_rebuild/analyse.py
@@ -298,7 +298,7 @@ def analyse(settings, logger, libraries=None, la_libraries=None,
)
logger.info(green(' * ') + bold('Scanning files'))
- libs_and_bins = set(libraries + binaries)
+ libs_and_bins = libraries.union(binaries)
scanned_files = scan_files(libs_and_bins, settings['CMD_MAX_ARGS'], logger)
@@ -313,7 +313,7 @@ def analyse(settings, logger, libraries=None, la_libraries=None,
broken_pathes = libcheck.process_results(libcheck.search())
broken_la = extract_dependencies_from_la(la_libraries,
- libraries+libraries_links, _libs_to_check, logger)
+ libraries.union(libraries_links), _libs_to_check, logger)
broken_pathes += broken_la
logger.warn(green(' * ') + bold('Assign files to packages'))
diff --git a/pym/gentoolkit/revdep_rebuild/collect.py b/pym/gentoolkit/revdep_rebuild/collect.py
index 4ce0e7b..9fba58a 100644
--- a/pym/gentoolkit/revdep_rebuild/collect.py
+++ b/pym/gentoolkit/revdep_rebuild/collect.py
@@ -130,12 +130,13 @@ def collect_libraries_from_dir(dirs, mask, logger):
# contains list of directories found
# allows us to reduce number of fnc calls
- found_directories = []
- found_files = []
- found_symlinks = []
- found_la_files = [] # la libraries
+ found_directories = set()
+ found_files = set()
+ found_symlinks = set()
+ found_la_files = set() # la libraries
symlink_pairs = [] # list of pairs symlink_id->library_id
+
for _dir in dirs:
if _dir in mask:
continue
@@ -151,43 +152,43 @@ def collect_libraries_from_dir(dirs, mask, logger):
#we do not want scan symlink-directories
pass
else:
- found_directories.append(listing)
+ found_directories.add(listing)
elif os.path.isfile(listing):
if (listing.endswith('.so') or
listing.endswith('.a') or
'.so.' in listing
):
- if listing in found_files or listing in found_symlinks:
- continue
+ #if listing in found_files or listing in found_symlinks:
+ #continue
if os.path.islink(listing):
- found_symlinks.append(listing)
- abs_path = os.path.realpath(listing)
- if abs_path in found_files:
- index = found_files.index(abs_path)
- else:
- found_files.append(abs_path)
- index = len(found_files)-1
- symlink_pairs.append((len(found_symlinks)-1, index,))
+ found_symlinks.add(listing)
+ #abs_path = os.path.realpath(listing)
+ #if abs_path in found_files:
+ #index = found_files.index(abs_path)
+ #else:
+ #found_files.append(abs_path)
+ #index = len(found_files)-1
+ #symlink_pairs.append((len(found_symlinks)-1, index,))
else:
- found_files.append(listing)
+ found_files.add(listing)
continue
elif listing.endswith('.la'):
if listing in found_la_files:
continue
- found_la_files.append(listing)
+ found_la_files.add(listing)
else:
# sometimes there are binaries in libs' subdir,
# for example in nagios
if not os.path.islink(listing):
- if listing in found_files or listing in found_symlinks:
- continue
+ #if listing in found_files or listing in found_symlinks:
+ #continue
prv = os.stat(listing)[stat.ST_MODE]
if prv & stat.S_IXUSR == stat.S_IXUSR or \
prv & stat.S_IXGRP == stat.S_IXGRP or \
prv & stat.S_IXOTH == stat.S_IXOTH:
- found_files.append(listing)
+ found_files.add(listing)
except Exception as ex:
logger.debug('\t' +
yellow('Exception collecting libraries: ' +
@@ -196,9 +197,9 @@ def collect_libraries_from_dir(dirs, mask, logger):
if found_directories:
_file, la_file, link, pair = \
collect_libraries_from_dir(found_directories, mask, logger)
- found_files += _file
- found_la_files += la_file
- found_symlinks += link
+ found_files.update(_file)
+ found_la_files.update(la_file)
+ found_symlinks.update(link)
symlink_pairs += pair
return (found_files, found_la_files, found_symlinks, symlink_pairs)
@@ -212,8 +213,8 @@ def collect_binaries_from_dir(dirs, mask, logger):
# contains list of directories found
# allows us to reduce number of fnc calls
- found_directories = []
- found_files = []
+ found_directories = set()
+ found_files = set()
for _dir in dirs:
if _dir in mask:
@@ -230,7 +231,7 @@ def collect_binaries_from_dir(dirs, mask, logger):
#we do not want scan symlink-directories
pass
else:
- found_directories.append(listing)
+ found_directories.add(listing)
elif os.path.isfile(listing):
# we're looking for binaries
# and with binaries we do not need links
@@ -240,14 +241,14 @@ def collect_binaries_from_dir(dirs, mask, logger):
if prv & stat.S_IXUSR == stat.S_IXUSR or \
prv & stat.S_IXGRP == stat.S_IXGRP or \
prv & stat.S_IXOTH == stat.S_IXOTH:
- found_files.append(listing)
+ found_files.add(listing)
except Exception as ex:
logger.debug('\t' +
yellow('Exception during binaries collecting: '+
blue('%s') %str(ex)))
if found_directories:
- found_files += collect_binaries_from_dir(found_directories, mask, logger)
+ found_files.union(collect_binaries_from_dir(found_directories, mask, logger))
return found_files
diff --git a/pym/gentoolkit/revdep_rebuild/rebuild.py b/pym/gentoolkit/revdep_rebuild/rebuild.py
index 3e91058..257bc02 100644
--- a/pym/gentoolkit/revdep_rebuild/rebuild.py
+++ b/pym/gentoolkit/revdep_rebuild/rebuild.py
@@ -269,7 +269,7 @@ def main(settings=None, logger=None):
'Unmask all ebuild(s) listed above and call revdep-rebuild '
'again or manually emerge given packages.')
- success = rebuild(logger, assigned, settings)
+ #success = rebuild(logger, assigned, settings)
logger.debug("rebuild return code = %i" %success)
return success