diff options
author | Slawek Lis <slis@gentoo.org> | 2014-03-24 08:14:57 +0100 |
---|---|---|
committer | Slawek Lis <slis@gentoo.org> | 2014-03-24 08:14:57 +0100 |
commit | 4f2ad629e4802598878f5bc674462de23fcea51b (patch) | |
tree | 811787b91cd2d6c8b3cfd04ebd8bcd8a8a538907 /pym/gentoolkit/revdep_rebuild | |
parent | Moved option and config parsing into settings module (diff) | |
download | gentoolkit-4f2ad629e4802598878f5bc674462de23fcea51b.tar.gz gentoolkit-4f2ad629e4802598878f5bc674462de23fcea51b.tar.bz2 gentoolkit-4f2ad629e4802598878f5bc674462de23fcea51b.zip |
parsing revdep config refactor, added environment config read (as sugggested here: https://bugs.gentoo.org/show_bug.cgi?id=504654#c28)
Diffstat (limited to 'pym/gentoolkit/revdep_rebuild')
-rw-r--r-- | pym/gentoolkit/revdep_rebuild/settings.py | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/pym/gentoolkit/revdep_rebuild/settings.py b/pym/gentoolkit/revdep_rebuild/settings.py index 057147c..7909aa6 100644 --- a/pym/gentoolkit/revdep_rebuild/settings.py +++ b/pym/gentoolkit/revdep_rebuild/settings.py @@ -130,13 +130,24 @@ def parse_options(): return settings +def _parse_dirs_to_set(dir_str): + '''Changes space-delimited directory list into set with them + ''' + _ret = set() + for search in dir_str.split(): + if search == '-*': + break + _ret.update(glob.glob(search)) + return _ret + + def parse_revdep_config(revdep_confdir): ''' Parses all files under and returns tuple of: (masked_dirs, masked_files, search_dirs)''' - search_dirs = set() - masked_dirs = set() - masked_files = set() + search_dirs = os.environ.get('SEARCH_DIRS', '') + masked_dirs = os.environ.get('SEARCH_DIRS_MASK', '') + masked_files = os.environ.get('LD_LIBRARY_MASK', '') for _file in os.listdir(revdep_confdir): for line in open(os.path.join(revdep_confdir, _file)): @@ -145,22 +156,20 @@ def parse_revdep_config(revdep_confdir): if not line.startswith('#'): match = re.match('LD_LIBRARY_MASK=\\"([^"]+)\\"', line) if match is not None: - masks = match.group(1).split(' ') - masked_files.update(masks) + masked_files += ' ' + match.group(1) continue match = re.match('SEARCH_DIRS_MASK=\\"([^"]+)\\"', line) if match is not None: - searches = match.group(1).split(' ') - for search in searches: - masked_dirs.update(glob.glob(search)) + masked_dirs += ' ' + match.group(1) continue match = re.match('SEARCH_DIRS=\\"([^"]+)\\"', line) if match is not None: - searches = match.group(1).split() - for search in searches: - search_dirs.update(glob.glob(search)) + search_dirs += ' ' + match.group(1) continue - print (masked_dirs, masked_files, search_dirs) + masked_files = set(masked_files.split(' ')) + masked_dirs = _parse_dirs_to_set(masked_dirs) + search_dirs = _parse_dirs_to_set(search_dirs) + return (masked_dirs, masked_files, search_dirs) |