Mercurial > public > mercurial-scm > hg
comparison mercurial/util.py @ 782:cdb9e95b2fab
Provided platform dependent implementations for explain_exit
os.system return code is system dependent.
author | thananck@yahoo.com |
---|---|
date | Wed, 27 Jul 2005 10:18:22 -0800 |
parents | 092937de2ad7 |
children | 445970ccf57a 8f5637f0a0c0 b65af904d6d7 |
comparison
equal
deleted
inserted
replaced
781:26f3d353851f | 782:cdb9e95b2fab |
---|---|
15 if f not in seen: | 15 if f not in seen: |
16 seen[f] = 1 | 16 seen[f] = 1 |
17 yield f | 17 yield f |
18 | 18 |
19 class CommandError(Exception): pass | 19 class CommandError(Exception): pass |
20 | |
21 def explain_exit(code): | |
22 """return a 2-tuple (desc, code) describing a process's status""" | |
23 if os.WIFEXITED(code): | |
24 val = os.WEXITSTATUS(code) | |
25 return "exited with status %d" % val, val | |
26 elif os.WIFSIGNALED(code): | |
27 val = os.WTERMSIG(code) | |
28 return "killed by signal %d" % val, val | |
29 elif os.WIFSTOPPED(code): | |
30 val = os.WSTOPSIG(code) | |
31 return "stopped by signal %d" % val, val | |
32 raise ValueError("invalid exit code") | |
33 | 20 |
34 def always(fn): return True | 21 def always(fn): return True |
35 def never(fn): return False | 22 def never(fn): return False |
36 | 23 |
37 def globre(pat, head = '^', tail = '$'): | 24 def globre(pat, head = '^', tail = '$'): |
164 return path.replace("\\", "/") | 151 return path.replace("\\", "/") |
165 | 152 |
166 makelock = _makelock_file | 153 makelock = _makelock_file |
167 readlock = _readlock_file | 154 readlock = _readlock_file |
168 | 155 |
156 def explain_exit(code): | |
157 return "exited with status %d" % code, code | |
158 | |
169 else: | 159 else: |
170 nulldev = '/dev/null' | 160 nulldev = '/dev/null' |
171 | 161 |
172 def is_exec(f, last): | 162 def is_exec(f, last): |
173 return (os.stat(f).st_mode & 0100 != 0) | 163 return (os.stat(f).st_mode & 0100 != 0) |
203 except OSError, why: | 193 except OSError, why: |
204 if why.errno == errno.EINVAL: | 194 if why.errno == errno.EINVAL: |
205 return _readlock_file(pathname) | 195 return _readlock_file(pathname) |
206 else: | 196 else: |
207 raise | 197 raise |
198 | |
199 def explain_exit(code): | |
200 """return a 2-tuple (desc, code) describing a process's status""" | |
201 if os.WIFEXITED(code): | |
202 val = os.WEXITSTATUS(code) | |
203 return "exited with status %d" % val, val | |
204 elif os.WIFSIGNALED(code): | |
205 val = os.WTERMSIG(code) | |
206 return "killed by signal %d" % val, val | |
207 elif os.WIFSTOPPED(code): | |
208 val = os.STOPSIG(code) | |
209 return "stopped by signal %d" % val, val | |
210 raise ValueError("invalid exit code") |