Mercurial > cpython-lru_cache-weakref
annotate Tools/scripts/findlinksto.py @ 5817:48b94de85bf3 legacy-trunk
Extensive changes by AMK.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Thu, 17 Jul 1997 16:29:42 +0000 |
| parents | 73758db2f464 |
| children | 14a27acc755a |
| rev | line source |
|---|---|
|
4573
73758db2f464
/usr/local/bin/python -> /usr/bin/env python
Guido van Rossum <guido@python.org>
parents:
1525
diff
changeset
|
1 #! /usr/bin/env python |
| 274 | 2 |
| 3 # findlinksto | |
| 4 # | |
|
1525
dc8aed8b204d
Restructured main, use getopt, use regular expression search instead
Guido van Rossum <guido@python.org>
parents:
1269
diff
changeset
|
5 # find symbolic links to a path matching a regular expression |
|
dc8aed8b204d
Restructured main, use getopt, use regular expression search instead
Guido van Rossum <guido@python.org>
parents:
1269
diff
changeset
|
6 |
|
dc8aed8b204d
Restructured main, use getopt, use regular expression search instead
Guido van Rossum <guido@python.org>
parents:
1269
diff
changeset
|
7 import os |
|
dc8aed8b204d
Restructured main, use getopt, use regular expression search instead
Guido van Rossum <guido@python.org>
parents:
1269
diff
changeset
|
8 import sys |
|
dc8aed8b204d
Restructured main, use getopt, use regular expression search instead
Guido van Rossum <guido@python.org>
parents:
1269
diff
changeset
|
9 import regex |
|
dc8aed8b204d
Restructured main, use getopt, use regular expression search instead
Guido van Rossum <guido@python.org>
parents:
1269
diff
changeset
|
10 import getopt |
| 274 | 11 |
|
1525
dc8aed8b204d
Restructured main, use getopt, use regular expression search instead
Guido van Rossum <guido@python.org>
parents:
1269
diff
changeset
|
12 def main(): |
|
dc8aed8b204d
Restructured main, use getopt, use regular expression search instead
Guido van Rossum <guido@python.org>
parents:
1269
diff
changeset
|
13 try: |
|
dc8aed8b204d
Restructured main, use getopt, use regular expression search instead
Guido van Rossum <guido@python.org>
parents:
1269
diff
changeset
|
14 opts, args = getopt.getopt(sys.argv[1:], '') |
|
dc8aed8b204d
Restructured main, use getopt, use regular expression search instead
Guido van Rossum <guido@python.org>
parents:
1269
diff
changeset
|
15 if len(args) < 2: |
|
dc8aed8b204d
Restructured main, use getopt, use regular expression search instead
Guido van Rossum <guido@python.org>
parents:
1269
diff
changeset
|
16 raise getopt.error, 'not enough arguments' |
|
dc8aed8b204d
Restructured main, use getopt, use regular expression search instead
Guido van Rossum <guido@python.org>
parents:
1269
diff
changeset
|
17 except getopt.error, msg: |
|
dc8aed8b204d
Restructured main, use getopt, use regular expression search instead
Guido van Rossum <guido@python.org>
parents:
1269
diff
changeset
|
18 sys.stdout = sys.stderr |
|
dc8aed8b204d
Restructured main, use getopt, use regular expression search instead
Guido van Rossum <guido@python.org>
parents:
1269
diff
changeset
|
19 print msg |
|
dc8aed8b204d
Restructured main, use getopt, use regular expression search instead
Guido van Rossum <guido@python.org>
parents:
1269
diff
changeset
|
20 print 'usage: findlinksto pattern directory ...' |
|
dc8aed8b204d
Restructured main, use getopt, use regular expression search instead
Guido van Rossum <guido@python.org>
parents:
1269
diff
changeset
|
21 sys.exit(2) |
|
dc8aed8b204d
Restructured main, use getopt, use regular expression search instead
Guido van Rossum <guido@python.org>
parents:
1269
diff
changeset
|
22 pat, dirs = args[0], args[1:] |
|
dc8aed8b204d
Restructured main, use getopt, use regular expression search instead
Guido van Rossum <guido@python.org>
parents:
1269
diff
changeset
|
23 prog = regex.compile(pat) |
|
dc8aed8b204d
Restructured main, use getopt, use regular expression search instead
Guido van Rossum <guido@python.org>
parents:
1269
diff
changeset
|
24 for dirname in dirs: |
|
dc8aed8b204d
Restructured main, use getopt, use regular expression search instead
Guido van Rossum <guido@python.org>
parents:
1269
diff
changeset
|
25 os.path.walk(dirname, visit, prog) |
| 274 | 26 |
|
1525
dc8aed8b204d
Restructured main, use getopt, use regular expression search instead
Guido van Rossum <guido@python.org>
parents:
1269
diff
changeset
|
27 def visit(prog, dirname, names): |
|
757
9de3d02aa75d
change posix/path to os
Guido van Rossum <guido@python.org>
parents:
559
diff
changeset
|
28 if os.path.islink(dirname): |
| 274 | 29 names[:] = [] |
| 30 return | |
|
757
9de3d02aa75d
change posix/path to os
Guido van Rossum <guido@python.org>
parents:
559
diff
changeset
|
31 if os.path.ismount(dirname): |
| 274 | 32 print 'descend into', dirname |
| 33 for name in names: | |
|
757
9de3d02aa75d
change posix/path to os
Guido van Rossum <guido@python.org>
parents:
559
diff
changeset
|
34 name = os.path.join(dirname, name) |
| 274 | 35 try: |
|
757
9de3d02aa75d
change posix/path to os
Guido van Rossum <guido@python.org>
parents:
559
diff
changeset
|
36 linkto = os.readlink(name) |
|
1525
dc8aed8b204d
Restructured main, use getopt, use regular expression search instead
Guido van Rossum <guido@python.org>
parents:
1269
diff
changeset
|
37 if prog.search(linkto) >= 0: |
| 274 | 38 print name, '->', linkto |
|
757
9de3d02aa75d
change posix/path to os
Guido van Rossum <guido@python.org>
parents:
559
diff
changeset
|
39 except os.error: |
| 274 | 40 pass |
| 41 | |
|
1525
dc8aed8b204d
Restructured main, use getopt, use regular expression search instead
Guido van Rossum <guido@python.org>
parents:
1269
diff
changeset
|
42 main() |
