Mercurial > hg > config
annotate python/make-targets.py @ 929:7c4be71a560b default tip
remove old aliases
| author | Jeff Hammel <k0scist@gmail.com> | 
|---|---|
| date | Mon, 20 Oct 2025 15:22:19 -0700 | 
| parents | 71345f4de3ce | 
| children | 
| rev | line source | 
|---|---|
| 
343
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
1 #!/usr/bin/python | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
2 | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
3 """ | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
4 list the targets for a makefile | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
5 """ | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
6 | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
7 import argparse | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
8 import subprocess | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
9 import sys | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
10 | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
11 call = subprocess.check_output | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
12 | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
13 def main(args=sys.argv[1:]): | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
14 | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
15 ignore = ['%', '.', '(', '/'] | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
16 | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
17 parser = argparse.ArgumentParser() | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
18 parser.add_argument("-a", "--all", action="store_true", | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
19 help="show all matches") | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
20 parser.add_argument("--origin", action="store_true", | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
21 help="show original line") | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
22 args = parser.parse_args(args) | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
23 | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
24 if args.all: | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
25 ignore = [] | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
26 | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
27 line_dict = {} | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
28 names = [] | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
29 output = call(["make", "-pn"]).strip() | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
30 for index, line in enumerate(output.splitlines()): | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
31 _orig = line | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
32 line = line.strip() | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
33 if not line: | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
34 continue | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
35 if line.startswith('#'): | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
36 continue | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
37 if ':' not in line: | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
38 continue | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
39 name, rhs = line.split(':', 1) | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
40 if rhs and rhs[0] == '=': | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
41 continue | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
42 name = name.strip() | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
43 if '=' in name or not name: | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
44 continue | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
45 | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
46 # ignore thingies | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
47 if name.startswith(tuple(ignore)): | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
48 continue | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
49 | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
50 names.append(name) | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
51 line_dict.setdefault(name, (index, _orig)) | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
52 | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
53 names = list(set(names)) | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
54 names.sort() | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
55 if args.origin: | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
56 for name in names: | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
57 index, line = line_dict[name] | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
58 print '%s: `%s`:%d' % (name, line, index+1) | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
59 return | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
60 print '\n'.join(names) | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
61 | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
62 if __name__ == '__main__': | 
| 
 
71345f4de3ce
programs to list make targets
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
63 main() | 
