Revision b48d834984f776d63225e254e21d9e0619db48e1 authored by Antoine R. Dumont (@ardumont) on 05 August 2020, 13:15:01 UTC, committed by Antoine R. Dumont (@ardumont) on 05 August 2020, 13:19:59 UTC
Related to T645
1 parent 4722663
swh-storage-add-dir
#!/usr/bin/env python3
# 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
import logging
import os
import sys
from swh.storage.storage import Storage
from swh.model.hashutil import MultiHash
if __name__ == "__main__":
try:
db_connstring = sys.argv[1]
obj_root = sys.argv[2]
dirname = sys.argv[3]
except IndexError:
print("Usage: swh-storage-add-dir" + " DB_CONNSTRING OBJ_STORAGE_DIR DATA_DIR")
print(
'Example: swh-storage-add-dir "dbname=swh user=foo"'
+ " /srv/softwareheritage/objects /usr/src/linux-4.2"
)
sys.exit(1)
logging.basicConfig(level=logging.INFO)
storage = Storage(db_connstring, obj_root)
def list_content():
for root, _dirs, files in os.walk(dirname):
for name in files:
path = os.path.join(root, name)
cont = MultiHash.from_path(path).digest()
cont["data"] = open(path, "rb").read()
yield cont
storage.content_add(list_content())
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...