diff --git a/bin/swh-loader-tar-retrieve-tarball b/bin/swh-loader-tar-retrieve-tarball index 03587d2..ca905c1 100755 --- a/bin/swh-loader-tar-retrieve-tarball +++ b/bin/swh-loader-tar-retrieve-tarball @@ -1,47 +1,47 @@ #!/usr/bin/env python3 -# NOT FOR PRODUCTION (does not use the swh storage api yet) +# NOT FOR PRODUCTION (does not use the stable swh storage api yet) # Copyright (C) 2015 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU General Public License version 3, or any later version # See top-level LICENSE file for more information from swh.core import hashutil from swh.storage.api.client import RemoteStorage as Storage def escape_hash(sha1): """Escape an hexa sha1 to a ready queryable sha1.""" if isinstance(sha1, bytes): sha1 = hashutil.hash_to_hex(sha1) return '\\x%s' % sha1 def upper_directory_from(db_url, revision_id): """Return the directory sha1 the revision with id revision_id points to. """ for revision in storage.revision_get([revision_id]): return revision['directory'] def list_files_from_directory(directory_id_bytes): for entry in storage.directory_get(directory_id_bytes, recursive=True): yield {'dir_id': hashutil.hash_to_hex(entry[0]), 'type': entry[1], 'target': hashutil.hash_to_hex(entry[2]), 'name': entry[3].decode('utf-8'), 'perms': entry[4]} storage = Storage('http://localhost:5000/') # beware the / db_url = 'dbname=softwareheritage-dev' revision_id = hashutil.hex_to_hash('7c82241cb2a564c79f2930ac9416800bbb2a6d3e') directory_sha1_bytes = upper_directory_from(db_url, revision_id) for entry in list_files_from_directory(directory_sha1_bytes): print(entry['perms'], entry['name'], entry['target'])