##// END OF EJS Templates
Merge with crew
Merge with crew

File last commit:

r7057:094af6ee default
r7173:37dd322a merge default
Show More
osutil.py
40 lines | 1.1 KiB | text/x-python | PythonLexer
import os
import stat as _stat
def _mode_to_kind(mode):
if _stat.S_ISREG(mode): return _stat.S_IFREG
if _stat.S_ISDIR(mode): return _stat.S_IFDIR
if _stat.S_ISLNK(mode): return _stat.S_IFLNK
if _stat.S_ISBLK(mode): return _stat.S_IFBLK
if _stat.S_ISCHR(mode): return _stat.S_IFCHR
if _stat.S_ISFIFO(mode): return _stat.S_IFIFO
if _stat.S_ISSOCK(mode): return _stat.S_IFSOCK
return mode
def listdir(path, stat=False, skip=None):
'''listdir(path, stat=False) -> list_of_tuples
Return a sorted list containing information about the entries
in the directory.
If stat is True, each element is a 3-tuple:
(name, type, stat object)
Otherwise, each element is a 2-tuple:
(name, type)
'''
result = []
prefix = path + os.sep
names = os.listdir(path)
names.sort()
for fn in names:
st = os.lstat(prefix + fn)
if fn == skip and _stat.S_ISDIR(st.st_mode):
return []
if stat:
result.append((fn, _mode_to_kind(st.st_mode), st))
else:
result.append((fn, _mode_to_kind(st.st_mode)))
return result