Push and pop xtrace correctly for run_early_customize

run_early_customize is run as a shell list, not as a subshell, so that the side
effects of setting variables can affect later stages of the build (for better or
worse, it's been like this since it was introduced). It therefore has the side
effect of turning off xtrace always, which limits the usefulness of sh -x
nanobsd.sh. Remember the old setting and only turn off tracing after the command
if tracing was off before. All the other places where we do similar things we use
a subshell, so we don't need to do this.
This commit is contained in:
Warner Losh 2019-09-27 20:56:44 +00:00
parent 067f74c267
commit 04b9e9473d

View File

@ -445,7 +445,11 @@ run_early_customize ( ) {
pprint 2 "early customize \"$c\""
pprint 3 "log: ${NANO_LOG}/_.early_cust.$c"
pprint 4 "`type $c`"
{ set -x ; $c ; set +x ; } >${NANO_LOG}/_.early_cust.$c 2>&1
{ t=$(set -o | awk '$1 == "xtrace" && $2 == "off" { print "set +x"}');
set -x ;
$c ;
eval $t
} >${NANO_LOG}/_.early_cust.$c 2>&1
done
}