diff --git a/library/packaging/apt_repository b/library/packaging/apt_repository index 577e4a866d1..83c2619dea4 100644 --- a/library/packaging/apt_repository +++ b/library/packaging/apt_repository @@ -133,16 +133,14 @@ class SourcesList(object): return os.path.abspath(os.path.join(apt_pkg.config.find_dir('Dir::Etc::sourceparts'), filename)) def _suggest_filename(self, line): - def _remove_protocol(s): - if '://' in s: - return s.split('://')[1] - else: - return s - def _cleanup_filename(s): return '_'.join(re.sub('[^a-zA-Z0-9]', ' ', s).split()) - parts = [_remove_protocol(part) for part in line.split() if part not in VALID_SOURCE_TYPES] + # Drop options and protocols. + line = re.sub('\[[^\]]+\]', '', line) + line = re.sub('\w+://', '', line) + + parts = [part for part in line.split() if part not in VALID_SOURCE_TYPES] return '%s.list' % _cleanup_filename(' '.join(parts[:1])) def _parse(self, line, raise_if_invalid_or_disabled=False):