It's not useful to raise an excpetion because it will only report the
command called exit with an error. Just return an error code instead of
rasing an exception. This way we get nicer error messages:
./waf unknowncommand
No function unknowncommand defined in /home/lucas/p/dronecode/ardupilot/wscript
vs
./waf unknowncommand
No function unknowncommand defined in /home/lucas/p/dronecode/ardupilot/wscript
Traceback (most recent call last):
File "./waf", line 15, in <module>
raise e
subprocess.CalledProcessError: Command '['python', '/home/lucas/p/dronecode/ardupilot/modules/waf/waf-light', 'unknowncommand']' returned non-zero exit status 1
On Windows we have 2 issues with the current wrapper:
1. We can't call the binary directly relying on shebang. Now we
call python and pass the script as an argument
2. Use os.path.join() with all components to derive the right
waf-light location
Simple wrapper to be extended later so people don't have to type the
huge "./modules/waf/waf-light" command. It has a very primitive way to
try to checkout waf submodule if it isn't there.