Revision 5dc4244821db03d910404967affcb6f876b73b14 authored by Antoine R. Dumont (@ardumont) on 19 January 2016, 10:46:44 UTC, committed by Antoine R. Dumont (@ardumont) on 19 January 2016, 11:07:17 UTC
1 parent 7e623c8
Raw File
swh-objstorage-add-dir
#!/usr/bin/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 import objstorage

if __name__ == '__main__':
    try:
        root_dir = sys.argv[1]
        dirname = sys.argv[2]
    except IndexError:
        print("Usage: swh-objstorage-add-dir OBJ_STORAGE_DIR DATA_DIR")
        sys.exit(1)

    logging.basicConfig(level=logging.INFO)

    objs = objstorage.ObjStorage(root_dir)

    dups = 0
    for root, _dirs, files in os.walk(dirname):
        for name in files:
            path = os.path.join(root, name)
            with open(path, 'rb') as f:
                try:
                    objs.add_file(f, length=os.path.getsize(path))
                except objstorage.DuplicateObjError:
                    dups += 1

    if dups:
        logging.info('skipped %d duplicate(s) file(s)' % dups)
back to top