예제 #1
0
def main():
    parser = argparse.ArgumentParser(
        description="Mount HTML directory listings.")
    parser.add_argument("-o",
                        help="comma separated FUSE options",
                        metavar='OPTIONS')
    parser.add_argument("-t",
                        "--timeout",
                        help="HTTP request timeout",
                        type=int,
                        default=30)
    parser.add_argument("-u", "--user-agent", help="HTTP User-Agent")
    parser.add_argument("-v",
                        "--verbose",
                        help="enable debug logging",
                        action='store_true')
    parser.add_argument("-d",
                        "--daemon",
                        help="run in background",
                        action='store_true')
    parser.add_argument("url", help="URL to mount")
    parser.add_argument("mountpoint", help="filesystem mount point")
    args = parser.parse_args()
    logging.basicConfig(format='%(levelname)s:%(name)s %(message)s',
                        level=logging.DEBUG if args.verbose else logging.INFO)
    CONFIG['timeout'] = args.timeout
    CONFIG['user_agent'] = args.user_agent
    fuseobj = fuse.FUSE(rehttpfs(args.url),
                        args.mountpoint,
                        foreground=(not args.daemon),
                        **convert_fuse_options(args.o))
예제 #2
0
def main():
    """Start the FUSE filesystem"""
    if len(sys.argv) < 4:
        print('usage: {} <root> <mountpoint> <virtual chroot>'.format(
            sys.argv[0]))
        sys.exit(1)

    # Find the filesystem options (the things following "-o")
    options = ''
    for i in range(len(sys.argv)):
        if sys.argv[i] == "-o" and len(sys.argv) > i + 1:
            options = sys.argv[i + 1]

    # Turn them into a format fuse.FUSE can handle (kwargs)
    fuse_args = {}
    for option in options.split(","):
        option_parts = option.split("=")
        if len(option_parts) == 1:
            fuse_args[option_parts[0]] = True
        else:
            fuse_args[option_parts[0]] = option_parts[1]

    # Start the FUSE FS
    fuse.FUSE(hide_symlinks.HideSymlinks(sys.argv[1], sys.argv[3]),
              sys.argv[2],
              foreground=True,
              **fuse_args)
예제 #3
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('mountpoint')
    parser.add_argument('-c', metavar='credentials.json', required=True)
    parser.add_argument('-t', metavar='TEMP_DIR', required=True)

    conf = parser.parse_args()
    credentials = json.load(open(conf.c))

    tempfile.TemporaryFile(dir=conf.t)

    global api
    global api_cache_dir
    api = cloudapi.Cloud(credentials['login'], credentials['password'])
    api_cache_dir = conf.t

    # logging.basicConfig(level=logging.DEBUG)
    fuse = fusepy.FUSE(MRUC(), conf.mountpoint, foreground=False, nothreads=True, allow_other=True)
예제 #4
0
    def hl_add_trigger(self, path, event, action, once=True):
        f = self.root.get_file(path)
        f.add_trigger(event, action, once)

    def hl_create_file(self, path, contents, mode, hidden=False, uid=None, gid=None):
        self.create(path,mode)
        f = self.root.get_file(path)
        if hidden:
            f.hide()
        self.write(path,contents.encode(),0,None)
        if uid != None:
            f.set_owner(uid,gid if gid != None else uid)
        return f

    def hl_mkdir(self, path, mode, hidden=False):
        self.mkdir(path,mode)
        f = self.root.get_file(path)
        if hidden:
            f.hide()
        return f

if __name__ == '__main__':
    if len(argv) != 2:
        print('usage: %s <mountpoint>' % argv[0])
        exit(1)

    logging.basicConfig(level=logging.DEBUG)
    game = Fusegame()
    gs.setup(game)
    fuse_obj = fuse.FUSE(game, argv[1], foreground=True)