24 def has_cvs(): |
24 def has_cvs(): |
25 return matchoutput('cvs --version 2>&1', r'Concurrent Versions System') |
25 return matchoutput('cvs --version 2>&1', r'Concurrent Versions System') |
26 |
26 |
27 def has_cvsps(): |
27 def has_cvsps(): |
28 return matchoutput('cvsps -h -q 2>&1', r'cvsps version', True) |
28 return matchoutput('cvsps -h -q 2>&1', r'cvsps version', True) |
|
29 |
|
30 def has_darcs(): |
|
31 return matchoutput('darcs', 'darcs version', True) |
29 |
32 |
30 def has_eol_in_paths(): |
33 def has_eol_in_paths(): |
31 try: |
34 try: |
32 fd, path = tempfile.mkstemp(prefix=tempprefix, suffix='\n\r') |
35 fd, path = tempfile.mkstemp(prefix=tempprefix, suffix='\n\r') |
33 os.close(fd) |
36 os.close(fd) |
83 return hasattr(os, "symlink") |
86 return hasattr(os, "symlink") |
84 |
87 |
85 checks = { |
88 checks = { |
86 "cvs": (has_cvs, "cvs client"), |
89 "cvs": (has_cvs, "cvs client"), |
87 "cvsps": (has_cvsps, "cvsps utility"), |
90 "cvsps": (has_cvsps, "cvsps utility"), |
|
91 "darcs": (has_darcs, "darcs client"), |
88 "eol-in-paths": (has_eol_in_paths, "end-of-lines in paths"), |
92 "eol-in-paths": (has_eol_in_paths, "end-of-lines in paths"), |
89 "execbit": (has_executablebit, "executable bit"), |
93 "execbit": (has_executablebit, "executable bit"), |
90 "fifo": (has_fifo, "named pipes"), |
94 "fifo": (has_fifo, "named pipes"), |
91 "git": (has_git, "git command line client"), |
95 "git": (has_git, "git command line client"), |
92 "hotshot": (has_hotshot, "python hotshot module"), |
96 "hotshot": (has_hotshot, "python hotshot module"), |