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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
12a64115a4ee Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2
12a64115a4ee Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
3 # findlinksto
12a64115a4ee Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
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
12a64115a4ee Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
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
12a64115a4ee Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
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
12a64115a4ee Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
29 names[:] = []
12a64115a4ee Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
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
12a64115a4ee Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
32 print 'descend into', dirname
12a64115a4ee Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
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
12a64115a4ee Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
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
12a64115a4ee Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
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
12a64115a4ee Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
40 pass
12a64115a4ee Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
41
1525
dc8aed8b204d Restructured main, use getopt, use regular expression search instead
Guido van Rossum <guido@python.org>
parents: 1269
diff changeset
42 main()