##// END OF EJS Templates
raise util.Abort again if specified revision is not an integer....
raise util.Abort again if specified revision is not an integer. This was changed to NoRepo in 462cc56d898f, because specifying non-integer revisions for e.g. the Mercurial backend caused Abort to be raised in the subversion importer. Now util.Abort is raised again, but the check is done after verifying if it really is a subversion repository.

File last commit:

r5103:e5b21a54 default
r5145:0751c25e default
Show More
hghave
81 lines | 1.9 KiB | text/plain | TextLexer
#!/usr/bin/env python
"""Test the running system for features availability. Exit with zero
if all features are there, non-zero otherwise.
"""
import optparse
import os
import sys
import tempfile
def has_symlink():
return hasattr(os, "symlink")
def has_fifo():
return hasattr(os, "mkfifo")
def has_executablebit():
fd, path = tempfile.mkstemp()
os.close(fd)
try:
s = os.lstat(path).st_mode
os.chmod(path, s | 0100)
return (os.lstat(path).st_mode & 0100 != 0)
finally:
os.remove(path)
def has_eol_in_paths():
try:
fd, path = tempfile.mkstemp(suffix='\n\r')
os.close(fd)
os.remove(path)
return True
except:
return False
checks = {
"symlink": (has_symlink, "symbolic links"),
"fifo": (has_fifo, "named pipes"),
"execbit": (has_executablebit, "executable bit"),
"eol-in-paths": (has_eol_in_paths, "end-of-lines in paths"),
}
def list_features():
for name, feature in checks.iteritems():
desc = feature[1]
print name + ':', desc
parser = optparse.OptionParser("%prog [options] [features]")
parser.add_option("--list-features", action="store_true",
help="list available features")
parser.add_option("-q", "--quiet", action="store_true",
help="check features silently")
if __name__ == '__main__':
options, args = parser.parse_args()
if options.list_features:
list_features()
sys.exit(0)
quiet = options.quiet
failures = 0
def error(msg):
global failures
if not quiet:
sys.stderr.write(msg + '\n')
failures += 1
for feature in args:
if feature not in checks:
error('hghave: unknown feature: ' + feature)
continue
check, desc = checks[feature]
if not check():
error('hghave: missing feature: ' + desc)
if failures != 0:
sys.exit(1)