Mercurial > hg
changeset 3998:315d47991fd4
symlinks: check whether a filesystem supports symlinks
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Fri, 29 Dec 2006 20:04:31 -0600 |
parents | 3f0ba82c103f |
children | 0b740dcf0cf1 |
files | mercurial/util.py |
diffstat | 1 files changed, 12 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/util.py Fri Dec 29 20:04:31 2006 -0600 +++ b/mercurial/util.py Fri Dec 29 20:04:31 2006 -0600 @@ -713,6 +713,18 @@ return lambda x: is_exec(os.path.join(path, x)) return fallback +def checksymlink(path): + """check whether the given path is on a symlink-capable filesystem""" + # mktemp is not racy because symlink creation will fail if the + # file already exists + name = tempfile.mktemp(dir=path) + try: + os.symlink(".", name) + os.unlink(name) + return True + except OSError: + return False + # Platform specific variants if os.name == 'nt': import msvcrt