def readdir(self, path, offset): log('--readdir(%r)\n' % path) node = cache_get(self.top, path) yield fuse.Direntry('.') yield fuse.Direntry('..') for sub in node.subs(): yield fuse.Direntry(sub.name)
def readdir_mount(self, path, offset, file_hash, action, rest): file_descr = get_file_descr(file_hash) LOG.debug('Rest:\n\t%s' % rest) if not rest: rest = '' if rest == '': yield fuse.Direntry(os.path.basename(file_descr.file.filename)) file_ids = get_referenced_file_ids(file_descr) file_id_paths = set([file_id.filename for file_id in file_ids]) LOG.debug(os.path.dirname(file_descr.file.filename)) LOG.debug(file_id_paths) tree = file_ids_as_tree( file_ids, os.path.dirname(file_descr.file.filename) ) files = get_files_for_path(tree, rest) LOG.debug('Files:\n\t%s' % files) for key, value in files.iteritems(): if key == FILE_MARKER: for entry in value: yield fuse.Direntry(entry[0]) else: yield fuse.Direntry(key)
def readdir( self, path, offset ): #-------------------------- working properly----------------------------- print "readdir", path yield fuse.Direntry('.') yield fuse.Direntry('..') sefs = file1() all_files = sefs.ls() print "Rest of the files in root dir" for e in all_files: if str(e) == path: continue if (len(e.split(path)) == 2): print "%s" % e strpath = e.split(path) strpath = strpath[1] if path == '/': yield fuse.Direntry(str(e[1:])) elif (len(strpath.split('/')) > 2): continue else: size = len(path) + 1 yield fuse.Direntry(str(e[size:]))
def readdir(self, path, offset): try: self.logger.debug("ReadDir") dirents = ['.', '..'] if not self.torrent_info: if not self.torrent_handle.has_metadata(): dirents.append("No metadata downloaded yet") for r in dirents: yield fuse.Direntry(r) return else: self.fsinit() self.logger.debug("Path: " + path) if path != "/": path += "/" dirlist = self.getbtdirlist(path) dirents.extend(dirlist[1]) self.logger.debug("Dirents: " + unicode(dirents)) for r in dirents: yield fuse.Direntry(r) except: self.logger.critical( str("".join(traceback.format_exception(*sys.exc_info()))))
def readdir(self, path, offset): logging.info('readdir: ' + path) try: fs = self.tdb.find_by_path(path, 'dir') if fs[0] == 'file': yield -errno.ENOTDIR return if fs[0] != 'dir': yield -errno.ENOENT return except TagDB.NoTagException: yield -errno.ENOENT return for f in fs[1]: if len(f) == 1: yield fuse.Direntry(self.tdb.files[f[0]].fname) else: yield fuse.Direntry(f[1] + '/' + self.tdb.files[f[0]].fname) subtags = self.getxattr(path, 'tags', 1) if len(subtags) != 0: subtags = subtags.split('/') for st in subtags: if len(st) != 0: yield fuse.Direntry(st)
def readdir(self, path, offset): """ Return content of a directory : - List models for root path - List records for a model - List attachments for a record We don't have to check for the path, because getattr already returns -ENOENT if the model/record/attachment doesn't exist """ yield fuse.Direntry('.') yield fuse.Direntry('..') paths = path.split('/')[1:] # List models if path == '/': model_obj = Object(self.oerp_connection, 'ir.model') model_ids = model_obj.search([]) for model_data in model_obj.read(model_ids, ['model']): yield fuse.Direntry(model_data['model']) # List records elif len(paths) == 1: element_obj = Object(self.oerp_connection, paths[0]) element_ids = element_obj.search([]) for element_data in element_obj.read(element_ids, ['id']): yield fuse.Direntry(str(element_data['id'])) # List attachments else: attachment_obj = Object(self.oerp_connection, 'ir.attachment') attachment_ids = attachment_obj.search([ ('res_model', '=', paths[0]), ('res_id', '=', int(paths[1])) ]) for attachment_data in attachment_obj.read(attachment_ids, ['name']): yield fuse.Direntry( '%d-%s' % (attachment_data['id'], attachment_data['name']))
def readdir(self, path, offset): print self.db path = _path_to_docid(path) print "readdir: %r" % path for r in '.', '..': yield fuse.Direntry(r) if path == "": startkey = "+,\0" endkey = "+" + chr(ord(",") + 1) else: startkey = "+" + path + "/" endkey = "+" + path + chr(ord("/") + 1) for row in self.db.view('_all_docs', startkey=startkey, endkey=endkey).rows: cpath = row.key #TODO unescape, if necessary print repr(cpath) if "," in cpath: prefix, cpath = cpath.split(",", 1) if "/" in cpath: dirname, name = cpath.rsplit("/", 1) else: name = cpath yield fuse.Direntry(name.encode('utf-8'))
def readdir(self, path, offset): log.info("readdir(%s)" % path) yield fuse.Direntry('.') yield fuse.Direntry('..') if path == "/.command": for entry in self.readCommandDir(): yield entry return # Get field fieldset = self.getField(path) # if not fieldset: # return -errno.ENOENT if path == "/": entry = fuse.Direntry(".command") entry.type = stat.S_IFREG yield entry # Format file name count = len(fieldset) if count % 10: count += 10 - (count % 10) format = "%%0%ud-%%s" % (count // 10) # Create entries for index, field in enumerate(fieldset): name = format % (1 + index, field.name) entry = fuse.Direntry(name) if field.is_field_set: entry.type = stat.S_IFDIR else: entry.type = stat.S_IFREG yield entry log.info("readdir(%s) done" % path)
def readdir(self, path, offset): LOG(LOG.FILE, 'requesting directory listing', path) d = self._getObjPth(path) LOG(LOG.FILE, ' listing...', str(d.children)) r = tuple([fuse.Direntry(e) for e in d.children]) LOG(LOG.FILE, ' listing...', str(r)) return tuple([fuse.Direntry(str(e)) for e in d.children])
def readdir(self, path, offset): if path.startswith('/files'): path = '/'.join(path.split('/')[2:]) if not path: for f in self.files['files']: yield fuse.Direntry(f) for d in self.files['dirs']: yield fuse.Direntry(d) else: s = path.split('/') workingFolder = self.files for f in s: if workingFolder['dirs'].get(f, 0) != 0: workingFolder = workingFolder['dirs'][f] else: raise -errno.ENOENT for f in workingFolder['files']: yield fuse.Direntry(f) for d in workingFolder['dirs']: yield fuse.Direntry(d) elif path in self.structure: for e in sorted(self.structure[path], key=lambda x: self.structure[path][x]['type']): if self.structure[path][e].get('hidden'): continue yield fuse.Direntry(e)
def readdir(self, path, offset): """returns the union of the sets of available files and folders from context and recontext combined""" print "readdir on path: ", path yield fuse.Direntry('.') yield fuse.Direntry('..') for e in self.generateReaddir(path, offset): yield fuse.Direntry(e)
def readdir(self, path, offset): phys_path = self._physical_path(path).rstrip('/') + '/' for r in ('..', '.'): yield fuse.Direntry(r) for r in os.listdir(phys_path): virt_path = r debug('readdir yield: ' + virt_path) yield fuse.Direntry(virt_path)
def readdir(self, path, offset): print("readdir", path, offset) children = xfs.list(path) #print(children) for r in '.', '..': yield fuse.Direntry(r) for r in children: yield fuse.Direntry(r)
def readdir(self, path, offset): direntry = self.dirs.get(path) if direntry is None: return -errno.ENOENT yield fuse.Direntry('.') yield fuse.Direntry('..') for f in direntry.keys(): yield fuse.Direntry(f)
def readdir(self, path, offset): print "*** readdir", path, offset rets = [fuse.Direntry("."), fuse.Direntry("..")] dlist = self.__backend.readdir(path) for de in dlist: ret = fuse.Direntry(str(de.filename)) ret.ino = de.inode_num rets.append(ret) return rets[offset:]
def readdir(self, path, offset): directory = io.fromPath(path) yield fuse.Direntry('.') yield fuse.Direntry('..') children = list(directory.children()) for c in children: yield fuse.Direntry(c.name())
def readdir(self, *args, **kwargs): show = kwargs['show'] season = kwargs['season'] for episode in pycapi.episodes_by_season(show, season): name = '%02i:: %s' % (int(episode[1]), episode[2]) yield fuse.Direntry(name + '.mp4') yield fuse.Direntry(name + '.srt') if NULLHACK: yield fuse.Direntry(name + '.nul')
def readdir(self, path, offset): if self.ewf_debug: print "READDIR:", path, "OFFSET:", offset for r in '.', '..': yield fuse.Direntry(r) for name in self.files: yield fuse.Direntry(name[1:]) for name in self.partitions: yield fuse.Direntry(name[1:])
def readdir(self, path, offset): #Why does this have an offset? fileobj = self.partition.get_file(path) if fileobj and fileobj.isDirectory(): dirlist = [fuse.Direntry('.'), fuse.Direntry('..')] for f in fileobj.files: dirlist.append(fuse.Direntry(f)) return dirlist else: return -errno.ENOENT
def readdir(self, path, offset): """ As only the root path exists, we only have to return the default entries """ yield fuse.Direntry('.') yield fuse.Direntry('..') for path in self.files: yield (fuse.Direntry(path))
def readdir(self, path, offset): print '*** getdir', path path = self.__splitPath(path) if path[0] == '/': for dir in self.dir_structure: yield fuse.Direntry(str(dir)) else: for file in self.generateMongoDir(path[1]): yield fuse.Direntry(str(file))
def readdir(self, path, offset): #print("===", "readdir", path) for e in '.', '..': yield fuse.Direntry(e) node = self._get_node(path) try: for e in node.keys(): yield fuse.Direntry(e) except: pass
def readdir(self, path, offset): print "*** READDIR: ", path yield fuse.Direntry('.') yield fuse.Direntry('..') print ":::::" + sys.argv[-2] for x in os.listdir(sys.argv[-2] + path): yield fuse.Direntry(os.path.basename(x)) return
def readdir(self, path, offset): # TODO: offset? pool = svn.core.Pool(get_pool()) if path == '/': yield fuse.Direntry('head') for f in self.__get_files_list(path, pool) + [".", ".."]: yield fuse.Direntry(f)
def readdir(self, path, offset): # TODO: Make this pay attention to offset node = self._find(path) if node is not None: # and isinstance(node, __main__.Base): if node.stat.st_atime + API_TTL < time.time(): node.fetch() yield fuse.Direntry('.') yield fuse.Direntry('..') for n in node.children: yield fuse.Direntry(n)
def readdir(self, path, offset): assert not offset # We don't return offsets, so offset should be unused res = vfs.lresolve(self.repo, path) dir_name, dir_item = res[-1] if not dir_item: yield -errno.ENOENT yield fuse.Direntry('..') # FIXME: make sure want_meta=False is being completely respected for ent_name, ent_item in vfs.contents(repo, dir_item, want_meta=False): yield fuse.Direntry(ent_name.replace('/', '-'))
def readdir(self, offset): yield fuse.Direntry('.') yield fuse.Direntry('..') for page in self.virt_pages.iterkeys(): yield fuse.Direntry(page) all = self.wikiproxy.getAllPages() for page in all: if page.find('/') == -1: yield fuse.Direntry(page)
def readdir(self, path, offset): log.info('readdir: %s' % path) pDir = self.FS.get(path) if not pDir: return -errno.ENOENT if pDir.type != stat.S_IFDIR: return [fuse.Direntry(pDir.name)] files = [fuse.Direntry('.'), fuse.Direntry('..')] for e in pDir.entries: files.append(fuse.Direntry(e.name)) return files
def readdir(self, path, offset): try: yield fuse.Direntry('.') yield fuse.Direntry('..') node = self.cache.get(path, lambda x: get_node(self.video, x)) if node: for item in node.content(): yield fuse.Direntry(item.file_system_name()) except: logging.error('VdrFuseFs: Unexpected error for readdir(%s): %s' % (path, format_exception_info()))
def readdir(self, path, offset = None, dh = None): # TODO: Update timestamps: readdir updates atime if not self.cacheManager.exists(path): yield elif not self.cacheManager.isDirectory(path): yield yield fuse.Direntry(".") yield fuse.Direntry("..") for entry in self.cacheManager.listDirectory(path): yield fuse.Direntry(entry)