Changeset View
Changeset View
Standalone View
Standalone View
swh/indexer/metadata.py
Show First 20 Lines • Show All 140 Lines • ▼ Show 20 Lines | def index(self, rev): | ||||
'id': rev['id'], | 'id': rev['id'], | ||||
'indexer_configuration_id': self.tool['id'], | 'indexer_configuration_id': self.tool['id'], | ||||
'mappings': None, | 'mappings': None, | ||||
'translated_metadata': None | 'translated_metadata': None | ||||
} | } | ||||
try: | try: | ||||
root_dir = rev['directory'] | root_dir = rev['directory'] | ||||
dir_ls = self.storage.directory_ls(root_dir, recursive=False) | dir_ls = list(self.storage.directory_ls(root_dir, recursive=False)) | ||||
if [entry['type'] for entry in dir_ls] == ['dir']: | |||||
# If the root is just a single directory, recurse into it | |||||
# eg. PyPI packages, GNU tarballs | |||||
subdir = dir_ls[0]['target'] | |||||
dir_ls = self.storage.directory_ls(subdir, recursive=False) | |||||
files = [entry for entry in dir_ls if entry['type'] == 'file'] | files = [entry for entry in dir_ls if entry['type'] == 'file'] | ||||
detected_files = detect_metadata(files) | detected_files = detect_metadata(files) | ||||
(mappings, metadata) = self.translate_revision_metadata( | (mappings, metadata) = self.translate_revision_metadata( | ||||
detected_files, | detected_files, | ||||
log_suffix='revision=%s' % hashutil.hash_to_hex(rev['id'])) | log_suffix='revision=%s' % hashutil.hash_to_hex(rev['id'])) | ||||
result['mappings'] = mappings | result['mappings'] = mappings | ||||
result['translated_metadata'] = metadata | result['translated_metadata'] = metadata | ||||
except Exception as e: | except Exception as e: | ||||
▲ Show 20 Lines • Show All 170 Lines • Show Last 20 Lines |