annotate scripts/mkstatus.py @ 1349:bf2e5591bdf0 draft

Cleanup strings.
author Rob Landley <rob@landley.net>
date Wed, 11 Jun 2014 08:02:55 -0500
parents bd745ae2b115
children 382d5b9ff2d5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
635
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
1 #!/usr/bin/python
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
2
805
0db28494d17d Accumulated web page changes. (Release announcement for previous release, roadmap updates, etc.)
Rob Landley <rob@landley.net>
parents: 757
diff changeset
3 # Create status.html
0db28494d17d Accumulated web page changes. (Release announcement for previous release, roadmap updates, etc.)
Rob Landley <rob@landley.net>
parents: 757
diff changeset
4
635
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
5 import subprocess,sys
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
6
757
4094f14c47a2 Update mkstatus.py, roadmap.html, and status.html.
Rob Landley <rob@landley.net>
parents: 731
diff changeset
7 def readit(args):
4094f14c47a2 Update mkstatus.py, roadmap.html, and status.html.
Rob Landley <rob@landley.net>
parents: 731
diff changeset
8 ret={}
4094f14c47a2 Update mkstatus.py, roadmap.html, and status.html.
Rob Landley <rob@landley.net>
parents: 731
diff changeset
9 arr=[]
4094f14c47a2 Update mkstatus.py, roadmap.html, and status.html.
Rob Landley <rob@landley.net>
parents: 731
diff changeset
10 blob=subprocess.Popen(args, stdout=subprocess.PIPE, shell=False)
4094f14c47a2 Update mkstatus.py, roadmap.html, and status.html.
Rob Landley <rob@landley.net>
parents: 731
diff changeset
11 for i in blob.stdout.read().split("\n"):
4094f14c47a2 Update mkstatus.py, roadmap.html, and status.html.
Rob Landley <rob@landley.net>
parents: 731
diff changeset
12 if not i: continue
4094f14c47a2 Update mkstatus.py, roadmap.html, and status.html.
Rob Landley <rob@landley.net>
parents: 731
diff changeset
13 i=i.split()
4094f14c47a2 Update mkstatus.py, roadmap.html, and status.html.
Rob Landley <rob@landley.net>
parents: 731
diff changeset
14 ret[i[0]]=i[1:]
4094f14c47a2 Update mkstatus.py, roadmap.html, and status.html.
Rob Landley <rob@landley.net>
parents: 731
diff changeset
15 arr.extend(i)
4094f14c47a2 Update mkstatus.py, roadmap.html, and status.html.
Rob Landley <rob@landley.net>
parents: 731
diff changeset
16 return ret,arr
635
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
17
1035
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
18 # Run sed on roadmap and status pages to get command lists, and run toybox too
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
19 # This gives us a dictionary of types, each with a list of commands
757
4094f14c47a2 Update mkstatus.py, roadmap.html, and status.html.
Rob Landley <rob@landley.net>
parents: 731
diff changeset
20
1035
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
21 stuff,blah=readit(["sed","-n", 's/<span id=\\([a-z_]*\\)>/\\1 /;t good;d;:good;h;:loop;n;s@</span>@@;t out;H;b loop;:out;g;s/\\n/ /g;p', "www/roadmap.html", "www/status.html"])
757
4094f14c47a2 Update mkstatus.py, roadmap.html, and status.html.
Rob Landley <rob@landley.net>
parents: 731
diff changeset
22 blah,toystuff=readit(["./toybox"])
639
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents: 635
diff changeset
23
1035
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
24 # Create reverse mappings: command is in which
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
25
635
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
26 reverse={}
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
27 for i in stuff:
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
28 for j in stuff[i]:
757
4094f14c47a2 Update mkstatus.py, roadmap.html, and status.html.
Rob Landley <rob@landley.net>
parents: 731
diff changeset
29 try: reverse[j].append(i)
4094f14c47a2 Update mkstatus.py, roadmap.html, and status.html.
Rob Landley <rob@landley.net>
parents: 731
diff changeset
30 except: reverse[j]=[i]
4094f14c47a2 Update mkstatus.py, roadmap.html, and status.html.
Rob Landley <rob@landley.net>
parents: 731
diff changeset
31
4094f14c47a2 Update mkstatus.py, roadmap.html, and status.html.
Rob Landley <rob@landley.net>
parents: 731
diff changeset
32 for i in toystuff:
4094f14c47a2 Update mkstatus.py, roadmap.html, and status.html.
Rob Landley <rob@landley.net>
parents: 731
diff changeset
33 try:
4094f14c47a2 Update mkstatus.py, roadmap.html, and status.html.
Rob Landley <rob@landley.net>
parents: 731
diff changeset
34 if ("ready" in reverse[i]) or ("pending" in reverse[i]): continue
4094f14c47a2 Update mkstatus.py, roadmap.html, and status.html.
Rob Landley <rob@landley.net>
parents: 731
diff changeset
35 except: pass
4094f14c47a2 Update mkstatus.py, roadmap.html, and status.html.
Rob Landley <rob@landley.net>
parents: 731
diff changeset
36 print i
635
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
37
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
38 pending=[]
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
39 done=[]
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
40
805
0db28494d17d Accumulated web page changes. (Release announcement for previous release, roadmap updates, etc.)
Rob Landley <rob@landley.net>
parents: 757
diff changeset
41 print "all commands=%s" % len(reverse)
0db28494d17d Accumulated web page changes. (Release announcement for previous release, roadmap updates, etc.)
Rob Landley <rob@landley.net>
parents: 757
diff changeset
42
635
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
43 outfile=open("www/status.gen", "w")
731
76e7bf56b2e6 Generate status page with new pubs.opengroup.org urls.
Rob Landley <rob@landley.net>
parents: 678
diff changeset
44 outfile.write("<a name=all><h2><a href=#all>All commands</a></h2><blockquote><p>\n")
635
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
45
1035
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
46 conv = [("posix", '<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/%s.html">%%s</a>', "[%s]"),
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
47 ("lsb", '<a href="http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/%s.html">%%s</a>', '&lt;%s&gt;'),
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
48 ("development", '<a href="http://linux.die.net/man/1/%s">%%s</a>', '(%s)'),
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
49 ("toolbox", "", '{%s}'), ("klibc_cmd", "", '=%s='),
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
50 ("sash_cmd", "", '#%s#'), ("sbase_cmd", "", '@%s@'),
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
51 ("beastiebox_cmd", "", '*%s*'),
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
52 ("request", '<a href="http://linux.die.net/man/1/%s">%%s</a>', '+%s+')]
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
53
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
54
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
55 def categorize(reverse, i, skippy=""):
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
56 linky = "%s"
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
57 out = i
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
58
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
59 if skippy: types = filter(lambda a: a != skippy, reverse[i])
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
60 else: types = reverse[i]
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
61
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
62 for j in conv:
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
63 if j[0] in types:
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
64 if j[1]: linky = j[1] % i
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
65 out = j[2] % out
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
66 if not skippy: break
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
67 if (not skippy) and out == i:
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
68 sys.stderr.write("unknown %s %s\n" % (i,reverse[i]))
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
69
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
70 return linky % out
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
71
635
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
72 blah=list(reverse)
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
73 blah.sort()
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
74 for i in blah:
1035
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
75 out=categorize(reverse, i)
635
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
76 if "ready" in reverse[i] or "pending" in reverse[i]:
639
3c591e7a367d More web page roadmap/status update stuff.
Rob Landley <rob@landley.net>
parents: 635
diff changeset
77 done.append(out)
635
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
78 out='<strike>%s</strike>' % out
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
79 else: pending.append(out)
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
80
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
81 outfile.write(out+"\n")
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
82
805
0db28494d17d Accumulated web page changes. (Release announcement for previous release, roadmap updates, etc.)
Rob Landley <rob@landley.net>
parents: 757
diff changeset
83 print "done=%s" % len(done)
635
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
84 outfile.write("</p></blockquote>\n")
cffb9b7f1c60 Add status.html and script to calculate it from roadmap info.
Rob Landley <rob@landley.net>
parents:
diff changeset
85
731
76e7bf56b2e6 Generate status page with new pubs.opengroup.org urls.
Rob Landley <rob@landley.net>
parents: 678
diff changeset
86 outfile.write("<a name=todo><h2><a href=#todo>TODO</a></h2><blockquote><p>%s</p></blockquote>\n" % "\n".join(pending))
76e7bf56b2e6 Generate status page with new pubs.opengroup.org urls.
Rob Landley <rob@landley.net>
parents: 678
diff changeset
87 outfile.write("<a name=done><h2><a href=#done>Done</a></h2><blockquote><p>%s</p></blockquote>\n" % "\n".join(done))
1035
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
88
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
89 outfile.write("<hr><h2>Categories of remaining todo items</h2>")
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
90
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
91 for i in stuff:
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
92 todo = []
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
93
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
94 for j in stuff[i]:
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
95 if "ready" in reverse[j]: continue
1205
bd745ae2b115 Update status page.
Rob Landley <rob@landley.net>
parents: 1035
diff changeset
96 elif "pending" in reverse[j]: todo.append('<strike>%s</strike>' % j)
1035
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
97 else: todo.append(categorize(reverse,j,i))
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
98
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
99 if todo:
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
100 k = i
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
101 for j in conv:
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
102 if j[0] == i:
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
103 k = j[2] % i
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
104
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
105 outfile.write("<a name=%s><h2><a href=#%s>%s<a></h2><blockquote><p>" % (i,i,k))
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
106 outfile.write(" ".join(todo))
6b4529a50b72 Update status and roadmap pages, and status page generator script.
Rob Landley <rob@landley.net>
parents: 805
diff changeset
107 outfile.write("</p></blockquote>\n")