def listdir(self, commit, path): """Return a list of submodules, directories and files in given directory: Lists of (link name, target path) tuples. """ submodules, dirs, files = [], [], [] for entry_rel in self.get_blob_or_tree(commit, path).items(): # entry_rel: Entry('foo.txt', ...) # entry_abs: Entry('spam/eggs/foo.txt', ...) entry_abs = entry_rel.in_path(encode_for_git(path)) path_str = decode_from_git(entry_abs.path) item = (os.path.basename(path_str), path_str) if S_ISGITLINK(entry_abs.mode): submodules.append(item) elif stat.S_ISDIR(entry_abs.mode): dirs.append(item) else: files.append(item) keyfunc = lambda tpl: tpl[0].lower() submodules.sort(key=keyfunc) files.sort(key=keyfunc) dirs.sort(key=keyfunc) if path: dirs.insert(0, ('..', parent_directory(path))) return {'submodules': submodules, 'dirs': dirs, 'files': files}
def listdir(self): """ Returns a list of directories and files in the current path of the selected commit """ root_directory = self.get_root_directory() root_tree = self.context['repo'].get_blob_or_tree( self.context['commit'], root_directory ) dirs, files = [], [] for entry in root_tree.iteritems(): name, entry = entry.path, entry.in_path(root_directory) if entry.mode & stat.S_IFDIR: dirs.append((name.lower(), name, entry.path)) else: files.append((name.lower(), name, entry.path)) files.sort() dirs.sort() if root_directory: dirs.insert(0, (None, '..', parent_directory(root_directory))) return {'dirs' : dirs, 'files' : files}
def listdir(self, commit, path): """Return a list of submodules, directories and files in given directory: Lists of (link name, target path) tuples. """ submodules, dirs, files = [], [], [] for entry_rel in self.get_blob_or_tree(commit, path).items(): # entry_rel: Entry('foo.txt', ...) # entry_abs: Entry('spam/eggs/foo.txt', ...) entry_abs = entry_rel.in_path(encode_for_git(path)) path_str = decode_from_git(entry_abs.path) item = (os.path.basename(path_str), path_str) if S_ISGITLINK(entry_abs.mode): submodules.append(item) elif stat.S_ISDIR(entry_abs.mode): dirs.append(item) else: files.append(item) keyfunc = lambda tpl: tpl[0].lower() submodules.sort(key=keyfunc) files.sort(key=keyfunc) dirs.sort(key=keyfunc) if path: dirs.insert(0, ('..', parent_directory(path))) return {'submodules': submodules, 'dirs' : dirs, 'files' : files}
def listdir(self, commit, path): dirs, files = [], [] for entry in self.get_blob_or_tree(commit, path).items(): name, entry = entry.path, entry.in_path(encode_for_git(path)) if entry.mode & stat.S_IFDIR: dirs.append((name.lower(), name, entry.path)) else: files.append((name.lower(), name, entry.path)) files.sort() dirs.sort() if path: dirs.insert(0, (None, '..', parent_directory(path))) return {'dirs' : dirs, 'files' : files}
def listdir(self, commit, path): """Return a list of directories and files in given directory.""" submodules, dirs, files = [], [], [] for entry in self.get_blob_or_tree(commit, path).items(): name, entry = entry.path, entry.in_path(encode_for_git(path)) if S_ISGITLINK(entry.mode): submodules.append((name.lower(), name, entry.path, entry.sha)) elif stat.S_ISDIR(entry.mode): dirs.append((name.lower(), name, entry.path)) else: files.append((name.lower(), name, entry.path)) files.sort() dirs.sort() if path: dirs.insert(0, (None, '..', parent_directory(path))) return {'submodules': submodules, 'dirs': dirs, 'files': files}
def listdir(self, commit, path): """Return a list of directories and files in given directory.""" submodules, dirs, files = [], [], [] for entry in self.get_blob_or_tree(commit, path).items(): name, entry = entry.path, entry.in_path(encode_for_git(path)) if S_ISGITLINK(entry.mode): submodules.append( (name.lower(), name, entry.path, entry.sha)) elif stat.S_ISDIR(entry.mode): dirs.append((name.lower(), name, entry.path)) else: files.append((name.lower(), name, entry.path)) files.sort() dirs.sort() if path: dirs.insert(0, (None, '..', parent_directory(path))) return {'submodules': submodules, 'dirs' : dirs, 'files' : files}
def get_root_directory(self): root_directory = self.context['path'] if isinstance(self.context['blob_or_tree'], Blob): # 'path' is a file (not folder) name root_directory = parent_directory(root_directory) return root_directory
def get_root_directory(self): root_directory = self.context["path"] if isinstance(self.context["blob_or_tree"], dulwich.objects.Blob): # 'path' is a file (not folder) name root_directory = parent_directory(root_directory) return root_directory
def get_root_directory(self, root_directory, blob_or_tree): if isinstance(blob_or_tree, Blob): # 'path' is a file (not folder) name root_directory = parent_directory(root_directory) return root_directory