Mercurial > cpython-lru_cache-weakref
annotate Tools/scripts/which.py @ 24042:63fbbed10714 legacy-trunk
Simplify HTTPSConnection constructor.
See discussion in SF bug 458463.
| author | Jeremy Hylton <jeremy@alum.mit.edu> |
|---|---|
| date | Fri, 28 Jun 2002 23:38:14 +0000 |
| parents | 14a27acc755a |
| children | 8a7a2f1f88f0 |
| rev | line source |
|---|---|
|
4573
73758db2f464
/usr/local/bin/python -> /usr/bin/env python
Guido van Rossum <guido@python.org>
parents:
1269
diff
changeset
|
1 #! /usr/bin/env python |
| 274 | 2 |
| 3 # Variant of "which". | |
| 4 # On stderr, near and total misses are reported. | |
|
685
ca28a3a82bba
Added '-l[flags]' option.
Guido van Rossum <guido@python.org>
parents:
559
diff
changeset
|
5 # '-l<flags>' argument adds ls -l<flags> of each file found. |
| 274 | 6 |
|
6506
df6dfaac2d0b
Remove "." or "" from front of sys.path (this bit me once).
Guido van Rossum <guido@python.org>
parents:
4573
diff
changeset
|
7 import sys |
|
df6dfaac2d0b
Remove "." or "" from front of sys.path (this bit me once).
Guido van Rossum <guido@python.org>
parents:
4573
diff
changeset
|
8 if sys.path[0] in (".", ""): del sys.path[0] |
|
df6dfaac2d0b
Remove "." or "" from front of sys.path (this bit me once).
Guido van Rossum <guido@python.org>
parents:
4573
diff
changeset
|
9 |
| 755 | 10 import sys, os, string |
| 274 | 11 from stat import * |
| 12 | |
| 13 def msg(str): | |
|
15930
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
14 sys.stderr.write(str + '\n') |
| 274 | 15 |
| 755 | 16 pathlist = string.splitfields(os.environ['PATH'], ':') |
| 274 | 17 |
| 18 sts = 0 | |
|
685
ca28a3a82bba
Added '-l[flags]' option.
Guido van Rossum <guido@python.org>
parents:
559
diff
changeset
|
19 longlist = '' |
|
ca28a3a82bba
Added '-l[flags]' option.
Guido van Rossum <guido@python.org>
parents:
559
diff
changeset
|
20 |
|
ca28a3a82bba
Added '-l[flags]' option.
Guido van Rossum <guido@python.org>
parents:
559
diff
changeset
|
21 if sys.argv[1:] and sys.argv[1][:2] == '-l': |
|
15930
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
22 longlist = sys.argv[1] |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
23 del sys.argv[1] |
| 274 | 24 |
| 25 for prog in sys.argv[1:]: | |
|
15930
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
26 ident = () |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
27 for dir in pathlist: |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
28 file = os.path.join(dir, prog) |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
29 try: |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
30 st = os.stat(file) |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
31 except os.error: |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
32 continue |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
33 if not S_ISREG(st[ST_MODE]): |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
34 msg(file + ': not a disk file') |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
35 else: |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
36 mode = S_IMODE(st[ST_MODE]) |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
37 if mode & 0111: |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
38 if not ident: |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
39 print file |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
40 ident = st[:3] |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
41 else: |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
42 if st[:3] == ident: |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
43 s = 'same as: ' |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
44 else: |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
45 s = 'also: ' |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
46 msg(s + file) |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
47 else: |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
48 msg(file + ': not executable') |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
49 if longlist: |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
50 sts = os.system('ls ' + longlist + ' ' + file) |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
51 if sts: msg('"ls -l" exit status: ' + `sts`) |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
52 if not ident: |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
53 msg(prog + ': not found') |
|
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
6506
diff
changeset
|
54 sts = 1 |
| 274 | 55 |
| 56 sys.exit(sts) |
