Mercurial > hg > config
comparison python/lsex.py @ 69:71576cdc28ab
add option to pritn set of names
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Wed, 12 May 2010 13:23:08 -0700 |
parents | f3ab51c79813 |
children | 77e7cab3e9f2 |
comparison
equal
deleted
inserted
replaced
68:3c1f9b412675 | 69:71576cdc28ab |
---|---|
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 import os | 2 import os |
3 import sys | |
4 from optparse import OptionParser | |
3 | 5 |
4 # make sure duplicate path elements aren't printed twice | 6 # make sure duplicate path elements aren't printed twice |
5 def ordered_set(alist): | 7 def ordered_set(alist): |
6 seen = set() | 8 seen = set() |
7 new = [] | 9 new = [] |
13 return new | 15 return new |
14 | 16 |
15 def lsex(path=None): | 17 def lsex(path=None): |
16 """ | 18 """ |
17 list executable files on the path | 19 list executable files on the path |
18 o path: list of directories to search. if not specified, use system path | 20 - path: list of directories to search. if not specified, use system path |
19 """ | 21 """ |
20 | 22 |
21 if path is None: | 23 if path is None: |
22 # use system path | 24 # use system path |
23 path = ordered_set(os.environ['PATH'].split(':')) | 25 path = ordered_set(os.environ['PATH'].split(':')) |
32 files = filter(lambda x: os.access(x, os.X_OK), files) | 34 files = filter(lambda x: os.access(x, os.X_OK), files) |
33 files.sort() # just to make the output pretty | 35 files.sort() # just to make the output pretty |
34 executables.extend(files) | 36 executables.extend(files) |
35 return executables | 37 return executables |
36 | 38 |
39 def executable_names(path=None): | |
40 executables = lsex(path) | |
41 executables = set([os.path.basename(i) for i in executables]) | |
42 return executables | |
43 | |
37 if __name__ == '__main__': | 44 if __name__ == '__main__': |
45 parser = OptionParser() | |
46 parser.add_option('--names', action='store_true', default=False, | |
47 help="list only the set of names") | |
48 | |
49 options, args = parser.parse_args() | |
50 if options.names: | |
51 for i in sorted(executable_names()): | |
52 print i | |
53 sys.exit(0) | |
54 | |
38 for i in lsex(): | 55 for i in lsex(): |
39 print i | 56 print i |