def main(args, config, db): from bithorde import Client, parseConfig bithorde = Client(parseConfig(config.items('BITHORDE'))) if args.link: bhupload = bithorde.link else: bhupload = bithorde.upload add = AddController(Filesystem(db), bhupload) for path in find_files(args): print("Adding %s" % path) try: f = add(path, force=args.force) except FileExistsError: print(" file exists, skipped...") except: import traceback print(" unexpected error:") traceback.print_exc() else: print(" -> %s" % f.ids()) if add.added and args.export_links: export_from_config(db, bithorde, config)
def main(args, config, db): if not args.output_dir: raise argparse.ArgumentError( None, "Needs link output-dir in either config or as argument\n") bithorde = Client(parseConfig(config.items('BITHORDE'))) return export(db, bithorde, args.output_dir, args.target_dir, args.prefix, args.force_all)
def main(args, config, db): from bithorde import Client, parseConfig bithorde = Client(parseConfig(config.items('BITHORDE'))) c = Cat(Filesystem(db), bithorde) for path in args.path: for chunk in c(Path(path)): stdout.write(chunk)
def main(args, config, db): bithorde = Client(parseConfig(config.items('BITHORDE'))) scanner = Scanner(db, bithorde) log = logging.getLogger('scanner') scanner.run(db.query({'xt': ANY}), args.all_objects) log.info("Scanned %d assets. %d available, totaling %d GB", scanner.processed, scanner.available, scanner.size / (1024 * 1024 * 1024))
def main(args, config, db): bithorde = Client(parseConfig(config.items('BITHORDE'))) scanner = Scanner(db, bithorde) if args.all_objects: scanner.run_batch(db.query(ObjId.startswith('tree:tiger:'), scanner.fields)) scanner.log.info("Scanned %d assets. %d available, totaling %d GB", scanner.processed, scanner.available, scanner.size / (1024 * 1024 * 1024)) else: scanner.run()
def setup(args, config, db): from .util import noop_context_manager bithorde = Client(parseConfig(config.items('BITHORDE'))) # fsopts = set(llfuse.default_options()) fsopts = ['nonempty', 'allow_other', 'max_read=262144', 'fsname=bhindex'] if args.fs_debug: fsopts.append('debug') ops = Operations(database=db, bithorde=bithorde) llfuse.init(ops, args.mountpoint, fsopts) if args.scan: scanner = Thread(target=background_scan, args=(args, config, bithorde)) scanner.setDaemon(True) else: scanner = None return noop_context_manager(), (scanner,)
def init_logging(): formatter = logging.Formatter('%(message)s') handler = logging.StreamHandler() handler.setFormatter(formatter) handler.setLevel(logging.DEBUG) log.setLevel(logging.DEBUG) log.addHandler(handler) if __name__ == '__main__': init_logging() try: self, mountpoint = sys.argv except: raise SystemExit('Usage: %s <mountpoint>' % sys.argv[0]) bithorde = Client(parseConfig(config.items('BITHORDE')), autoconnect=False) bithorde.connect() mount_point_created = None if not os.path.exists(mountpoint): os.mkdir(mountpoint) mount_point_created = mountpoint def cleanup(remove_mountpoint): if remove_mountpoint: os.rmdir(remove_mountpoint) atexit.register(cleanup, mount_point_created) try: print("Entering llfuse")