]> git.proxmox.com Git - mirror_edk2.git/blame - AppPkg/Applications/Python/Python-2.7.2/Tools/scripts/findlinksto.py
EmbeddedPkg: Extend NvVarStoreFormattedLib LIBRARY_CLASS
[mirror_edk2.git] / AppPkg / Applications / Python / Python-2.7.2 / Tools / scripts / findlinksto.py
CommitLineData
4710c53d 1#! /usr/bin/env python\r
2\r
3# findlinksto\r
4#\r
5# find symbolic links to a path matching a regular expression\r
6\r
7import os\r
8import sys\r
9import re\r
10import getopt\r
11\r
12def main():\r
13 try:\r
14 opts, args = getopt.getopt(sys.argv[1:], '')\r
15 if len(args) < 2:\r
16 raise getopt.GetoptError('not enough arguments', None)\r
17 except getopt.GetoptError, msg:\r
18 sys.stdout = sys.stderr\r
19 print msg\r
20 print 'usage: findlinksto pattern directory ...'\r
21 sys.exit(2)\r
22 pat, dirs = args[0], args[1:]\r
23 prog = re.compile(pat)\r
24 for dirname in dirs:\r
25 os.path.walk(dirname, visit, prog)\r
26\r
27def visit(prog, dirname, names):\r
28 if os.path.islink(dirname):\r
29 names[:] = []\r
30 return\r
31 if os.path.ismount(dirname):\r
32 print 'descend into', dirname\r
33 for name in names:\r
34 name = os.path.join(dirname, name)\r
35 try:\r
36 linkto = os.readlink(name)\r
37 if prog.search(linkto) is not None:\r
38 print name, '->', linkto\r
39 except os.error:\r
40 pass\r
41\r
42if __name__ == '__main__':\r
43 main()\r