changeset 1035:6b4529a50b72

Update status and roadmap pages, and status page generator script.
author Rob Landley <rob@landley.net>
date Sun, 01 Sep 2013 07:25:37 -0500
parents 54c9d4a0d46e
children a25239480e7a
files scripts/mkstatus.py www/roadmap.html www/status.html
diffstat 3 files changed, 60 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/mkstatus.py	Sat Aug 31 12:30:41 2013 +0200
+++ b/scripts/mkstatus.py	Sun Sep 01 07:25:37 2013 -0500
@@ -15,9 +15,13 @@
     arr.extend(i)
   return ret,arr
 
+# Run sed on roadmap and status pages to get command lists, and run toybox too
+# This gives us a dictionary of types, each with a list of commands
+
 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"])
+blah,toystuff=readit(["./toybox"])
 
-blah,toystuff=readit(["./toybox"])
+# Create reverse mappings: command is in which
 
 reverse={}
 for i in stuff:
@@ -39,21 +43,36 @@
 outfile=open("www/status.gen", "w")
 outfile.write("<a name=all><h2><a href=#all>All commands</a></h2><blockquote><p>\n")
 
+conv = [("posix", '<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/%s.html">%%s</a>', "[%s]"),
+        ("lsb", '<a href="http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/%s.html">%%s</a>', '&lt;%s&gt;'),
+        ("development", '<a href="http://linux.die.net/man/1/%s">%%s</a>', '(%s)'),
+        ("toolbox", "", '{%s}'), ("klibc_cmd", "", '=%s='),
+        ("sash_cmd", "", '#%s#'), ("sbase_cmd", "", '@%s@'),
+        ("beastiebox_cmd", "", '*%s*'),
+        ("request", '<a href="http://linux.die.net/man/1/%s">%%s</a>', '+%s+')]
+
+
+def categorize(reverse, i, skippy=""):
+  linky = "%s"
+  out = i
+
+  if skippy: types = filter(lambda a: a != skippy, reverse[i])
+  else: types = reverse[i]
+
+  for j in conv:
+    if j[0] in types:
+      if j[1]: linky = j[1] % i
+      out = j[2] % out
+      if not skippy: break
+  if (not skippy) and out == i:
+    sys.stderr.write("unknown %s %s\n" % (i,reverse[i]))
+
+  return linky % out
+
 blah=list(reverse)
 blah.sort()
 for i in blah:
-  out=i
-  if "posix" in reverse[i]: out='[<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/%s.html">%s</a>]' % (i,out)
-  elif "lsb" in reverse[i]: out='&lt;<a href="http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/%s.html">%s</a>&gt;' % (i,out)
-  elif "development" in reverse[i]: out='(<a href="http://linux.die.net/man/1/%s">%s</a>)' % (i,out)
-  elif "toolbox" in reverse[i]: out='{%s}' % out
-  elif "klibc_cmd" in reverse[i]: out='=%s=' % out
-  elif "sash_cmd" in reverse[i]: out='#%s#' % out
-  elif "sbase_cmd" in reverse[i]: out='@%s@' % out
-  elif "beastiebox_cmd" in reverse[i]: out='*%s*' % out
-  elif "request" in reverse[i]: out='+<a href="http://linux.die.net/man/1/%s">%s</a>+' % (i,out)
-  elif "ready" in reverse[i]: pass
-  else: sys.stderr.write("unknown %s %s\n" % (i, reverse[i]))
+  out=categorize(reverse, i)
   if "ready" in reverse[i] or "pending" in reverse[i]:
     done.append(out)
     out='<strike>%s</strike>' % out
@@ -66,3 +85,22 @@
 
 outfile.write("<a name=todo><h2><a href=#todo>TODO</a></h2><blockquote><p>%s</p></blockquote>\n" % "\n".join(pending))
 outfile.write("<a name=done><h2><a href=#done>Done</a></h2><blockquote><p>%s</p></blockquote>\n" % "\n".join(done))
+
+outfile.write("<hr><h2>Categories of remaining todo items</h2>")
+
+for i in stuff:
+  todo = []
+
+  for j in stuff[i]:
+    if "ready" in reverse[j]: continue
+    else: todo.append(categorize(reverse,j,i))
+
+  if todo:
+    k = i
+    for j in conv:
+      if j[0] == i:
+        k = j[2] % i
+
+    outfile.write("<a name=%s><h2><a href=#%s>%s<a></h2><blockquote><p>" % (i,i,k))
+    outfile.write(" ".join(todo))
+    outfile.write("</p></blockquote>\n")
--- a/www/roadmap.html	Sat Aug 31 12:30:41 2013 +0200
+++ b/www/roadmap.html	Sun Sep 01 07:25:37 2013 -0500
@@ -399,7 +399,7 @@
 <p>So the list of things actually in klibc are:</p>
 
 <blockquote><b>
-<span id=klibc_cmd />
+<span id=klibc_cmd>
 cat chroot dmesg false kill ln losetup ls mkdir mkfifo readlink rm switch_root
 sleep sync true uname
 
@@ -463,7 +463,7 @@
 implemented:</p>
 
 <blockquote><p>
-<span id=sbase_cmd />
+<span id=sbase_cmd>
 basename cat chmod chown cksum cmp cp date dirname echo false fold grep head
 kill ln ls mc mkdir mkfifo mv nl nohup pwd rm seq sleep sort tail tee test
 touch true tty uname uniq wc yes
@@ -473,7 +473,7 @@
 <p>And has a TODO list:</p>
 
 <blockquote><p>
-<span id=sbase_cmd />
+<span id=sbase_cmd>
 cal chgrp chvt comm cut df diff du env expand expr id md5sum nice paste
 printenv printf readlink rmdir seq sha1sum split sync test tr unexpand unlink
 who
--- a/www/status.html	Sat Aug 31 12:30:41 2013 +0200
+++ b/www/status.html	Sun Sep 01 07:25:37 2013 -0500
@@ -8,16 +8,17 @@
 
 <!--#include file="status.gen" -->
 
-<h1>The current status of toybox (as of 0.4.1 release):</h1>
+<h1>The current status of toybox (as of 0.4.5 release):</h1>
 
 <h3><u>These commands are reasonably finished</u>:</h3>
 <blockquote><b>
 <span id=ready>
 basename cal cat catv chgrp chmod chown chvt cksum clear cmp comm count cp
-df dirname dmesg dos2unix echo env false gethostname groups killall link logname
-losetup ls lsmod md5sum mkdir mkfifo mkswap mktemp mv nice nohup od oneit
-pivot_root pwd readahead realpath rev rm seq setsid sha1sum sleep sort split
-stat swapoff swapon sync tac taskset tee time true truncate tty uniq unix2dos
+df dirname dmesg dos2unix echo egrep env false fgrep gethostname grep groups
+killall link logname losetup ls lsmod md5sum mkdir mkfifo mkswap mktemp mv
+nice nohup od oneit paste pivot_root pmap pwd readahead realpath renice rev
+rm seq setsid sha1sum sleep sort split stat swapoff swapon sync tac taskset
+tee time timeout true truncate tty uniq unix2dos
 unlink usleep uudecode uuencode wc which whoami yes
 </span>
 </b></blockquote>