[3/4] classes/utility-tasks: make do_listtasks a little more friendly

Submitted by Paul Eggleton on Feb. 24, 2014, 4:05 p.m.

Details

Message ID 094cc9139bb8c25448db05b35e7e6cd9ef1dda53.1393257867.git.paul.eggleton@linux.intel.com
State Accepted
Commit 36828f8a0db83b5222a8589984e4a02aeb00eada
Headers show

Commit Message

Paul Eggleton Feb. 24, 2014, 4:05 p.m.
* Sort the list so it's at least in some form of logical order. I looked
  at sorting by dependencies, but that's a topological sort, and given
  no such function is shipped as part of the python standard libraries
  it would seem excessive to pull one in just for this. In any case, I'm
  not sure that for the data we have this would lead to any particularly
  pleasing result.
* Show the doc values as defined in documentation.conf (where present)
  as a description

Addresses [YOCTO #4856].

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
 meta/classes/utility-tasks.bbclass | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

Patch hide | download patch | download mbox

diff --git a/meta/classes/utility-tasks.bbclass b/meta/classes/utility-tasks.bbclass
index 507e0f1..1792f18 100644
--- a/meta/classes/utility-tasks.bbclass
+++ b/meta/classes/utility-tasks.bbclass
@@ -1,13 +1,20 @@ 
 addtask listtasks
 do_listtasks[nostamp] = "1"
 python do_listtasks() {
-    import sys
-    # emit variables and shell functions
-    #bb.data.emit_env(sys.__stdout__, d)
-    # emit the metadata which isnt valid shell
+    taskdescs = {}
+    maxlen = 0
     for e in d.keys():
         if d.getVarFlag(e, 'task'):
-            bb.plain("%s" % e)
+            maxlen = max(maxlen, len(e))
+            if e.endswith('_setscene'):
+                desc = "%s (setscene version)" % (d.getVarFlag(e[:-9], 'doc') or '')
+            else:
+                desc = d.getVarFlag(e, 'doc') or ''
+            taskdescs[e] = desc
+
+    tasks = sorted(taskdescs.keys())
+    for taskname in tasks:
+        bb.plain("%s  %s" % (taskname.ljust(maxlen), taskdescs[taskname]))
 }
 
 CLEANFUNCS ?= ""