fix second issue around #59 when sourcing different setup.sh files in sequence

$1 is just a normal env var, so we cannot rely on it to be clean
new approach is to consume all information before descending into "recursion",
thus be more like tail recursion.

this allows to clean up temporary vars