Mercurial > hg
view mercurial/osutil.py @ 7632:9626819b2e3d
refactor version code
- simplify version detection code
- move detection code into setup.py
- move version reading function into util.py
- drop version.py code
This makes hg more closely follow its own recommendation of how to deal with
versioning your builds: use hg id in your build script.
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sat, 10 Jan 2009 18:02:38 -0600 |
parents | 00d76fa3ffba |
children |
line wrap: on
line source
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 if not prefix.endswith(os.sep): prefix += 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