#!/usr/bin/env python # Copyright (C) 2001 Jeff Epler # Copyright (C) 2006 Csaba Henk # Copyright (C) 2009 Steve Slaven # # This program can be distributed under the terms of the GNU LGPL. # See the file COPYING. # import logging, sys, os, fuse import FuseArchive log_level = logging.DEBUG #log_level = logging.WARNING logging.basicConfig( level = log_level, format = '%(asctime)s %(levelname)s %(filename)s:%(lineno)d %(module)s:%(funcName)s() %(message)s', stream = sys.stderr, filemode = 'w' ) enable_stats = False enable_psyco = False if enable_psyco: # Import Psyco if available try: import psyco psyco.full() except ImportError: pass if enable_stats: import hotshot prof = hotshot.Profile( "fusearchive_stats" ) prof.runcall() prof.close() usage = """ Userspace nullfs-alike: mirror the filesystem tree from some point on. """ + fuse.Fuse.fusage server = FuseArchive.FileSystem(version="%prog " + fuse.__version__, usage=usage, dash_s_do='setsingle') server.multithreaded = False server.parse(values=server, errex=1) if len(server.parser.largs) != 2: print "Usage: " + sys.argv[0] + " storageDirectory mountDirectory" sys.exit(1) server.root = server.parser.largs[0] try: if server.fuse_args.mount_expected(): os.chdir(server.root) except OSError: print >> sys.stderr, "can't enter root of underlying filesystem" sys.exit(1) server.main()