source: vendor/python/2.5/Tools/scripts/findlinksto.py

Last change on this file was 3225, checked in by bird, 18 years ago

Python 2.5

File size: 1.0 KB
Line 
1#! /usr/bin/env python
2
3# findlinksto
4#
5# find symbolic links to a path matching a regular expression
6
7import os
8import sys
9import re
10import getopt
11
12def main():
13 try:
14 opts, args = getopt.getopt(sys.argv[1:], '')
15 if len(args) < 2:
16 raise getopt.GetoptError('not enough arguments', None)
17 except getopt.GetoptError, msg:
18 sys.stdout = sys.stderr
19 print msg
20 print 'usage: findlinksto pattern directory ...'
21 sys.exit(2)
22 pat, dirs = args[0], args[1:]
23 prog = re.compile(pat)
24 for dirname in dirs:
25 os.path.walk(dirname, visit, prog)
26
27def visit(prog, dirname, names):
28 if os.path.islink(dirname):
29 names[:] = []
30 return
31 if os.path.ismount(dirname):
32 print 'descend into', dirname
33 for name in names:
34 name = os.path.join(dirname, name)
35 try:
36 linkto = os.readlink(name)
37 if prog.search(linkto) is not None:
38 print name, '->', linkto
39 except os.error:
40 pass
41
42if __name__ == '__main__':
43 main()
Note: See TracBrowser for help on using the repository browser.