# HG changeset patch # User Matt Mackall # Date 1167444270 21600 # Node ID 1cc60eebc71f1808faaed9928451ea0d7852088e # Parent 04d919cdf263e3d89642b8d73f7536f3979e559a exec: checkexec checks whether filesystem supports exec flags diff -r 04d919cdf263 -r 1cc60eebc71f mercurial/util.py --- a/mercurial/util.py Tue Dec 26 20:08:09 2006 +0100 +++ b/mercurial/util.py Fri Dec 29 20:04:30 2006 -0600 @@ -693,6 +693,20 @@ except: return True +def checkexec(path): + """ + Check whether the given path is on a filesystem with UNIX-like exec flags + + Requires a directory (like /foo/.hg) + """ + fh, fn = tempfile.mkstemp("", "", path) + os.close(fh) + m = os.stat(fn).st_mode + os.chmod(fn, m ^ 0111) + r = (os.stat(fn).st_mode != m) + os.unlink(fn) + return r + # Platform specific variants if os.name == 'nt': import msvcrt