Change -x/-v to only affect top-level targets by default, not recursively.

Because redo targets are nicely isolated (unlike make targets), you
usually only want to debug one of them at a time.  Using -x could be
confusing, because you might end up with a dump of output from a
dependency you're not interested in.

Now, by default we'll disable -x when recursing into sub-targets, so
you only see the trace from the targets you are actually trying to
debug.  To get recursive behaviour, specify -x twice, eg. -xx.

Same idea with -v.
This commit is contained in:
Avery Pennarun 2019-03-02 18:46:00 -05:00
commit b196315222
4 changed files with 15 additions and 7 deletions

View file

@ -62,7 +62,9 @@ option is *not* given and `--no-log` is used.
to stderr as it reads them. Most shells will print the
exact source line (eg. `echo $3`) and not the
substituted value of variables (eg. `echo
mytarget.redo.tmp`).
mytarget.redo.tmp`). Normally this option applies only
to targets you specify on the command line. To recursively
enable verbose mode for sub targets, pass it twice (-vv).
-x, --xtrace
: pass the -x option to /bin/sh when executing scripts.
@ -70,7 +72,9 @@ option is *not* given and `--no-log` is used.
commands are being executed. Most shells will print
the substituted variables (eg. `echo
mytarget.redo.tmp`) and not the original source line
(eg. `echo $3`).
(eg. `echo $3`). Normally this option applies only
to targets you specify on the command line. To recursively
enable xtrace mode for sub targets, pass it twice (-xx).
-k, --keep-going
: keep building as many targets as possible even if some