Mercurial > hg > mercurial-crew-with-dirclash
comparison mercurial/util.py @ 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 |
comparison
equal
deleted
inserted
replaced
3997:3f0ba82c103f | 3998:315d47991fd4 |
---|---|
711 '''return an is_exec() function with default to fallback''' | 711 '''return an is_exec() function with default to fallback''' |
712 if checkexec(path): | 712 if checkexec(path): |
713 return lambda x: is_exec(os.path.join(path, x)) | 713 return lambda x: is_exec(os.path.join(path, x)) |
714 return fallback | 714 return fallback |
715 | 715 |
716 def checksymlink(path): | |
717 """check whether the given path is on a symlink-capable filesystem""" | |
718 # mktemp is not racy because symlink creation will fail if the | |
719 # file already exists | |
720 name = tempfile.mktemp(dir=path) | |
721 try: | |
722 os.symlink(".", name) | |
723 os.unlink(name) | |
724 return True | |
725 except OSError: | |
726 return False | |
727 | |
716 # Platform specific variants | 728 # Platform specific variants |
717 if os.name == 'nt': | 729 if os.name == 'nt': |
718 import msvcrt | 730 import msvcrt |
719 nulldev = 'NUL:' | 731 nulldev = 'NUL:' |
720 | 732 |