WAF: when the program specified by --run is not found, print a list of all available program names in the error message.
authorGustavo J. A. M. Carneiro <gjc@inescporto.pt>
Thu, 05 Jul 2007 14:44:00 +0100
changeset 916 1eca7915ca9e
parent 915 9006896544b3
child 917 aed7f1b9e783
WAF: when the program specified by --run is not found, print a list of all available program names in the error message.
wscript
--- a/wscript	Thu Jul 05 14:38:39 2007 +0100
+++ b/wscript	Thu Jul 05 14:44:00 2007 +0100
@@ -155,10 +155,15 @@
         run_program(Params.g_options.run)
 
 def _find_program(program_name):
+    found_programs = []
     for obj in Object.g_allobjs:
+        if obj.m_type != 'program' or not obj.target:
+            continue
+        found_programs.append(obj.target)
         if obj.target == program_name:
             return obj
-    raise ValueError("progam '%s' not found" % (program_name,))
+    raise ValueError("progam '%s' not found; available programs are: %r"
+                     % (program_name, found_programs))
 
 def _run_argv(argv):
     env = Params.g_build.env_of_name('default')
@@ -199,8 +204,8 @@
 
     try:
         program_obj = _find_program(program_name)
-    except ValueError:
-        Params.fatal("progam '%s' not found" % (program_name,))
+    except ValueError, ex:
+        Params.fatal(str(ex))
 
     try:
         program_node, = program_obj.m_linktask.m_outputs