smoke: an account given in the shell no longer fails the realm leg

With no `.probe-identity`, the scrub kept the shell's WOW_USER, WOW_PASS
and WOW_CHAR in the environment, so the realm leg inherited WOW_CHAR and
`realm_select::smoke` refused it: the documented
`WOW_USER=… WOW_PASS=… WOW_CHAR=… scripts/smoke.sh` could never pass.
The account is resolved into the script's own variables first and each
leg passes it by name, so it now leaves the environment either way.

Verified: the scrub run alone with the account in the shell leaves only
WOW_HOST in a child's environment, with and without a declared identity.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Sam
2026-09-23 19:24:22 +07:00
co-authored by Claude Opus 5.5
parent af8c9f5eb6
commit 746254ba26
+4 -1
View File
@@ -28,9 +28,12 @@ char="$PROBE_CHAR"
inherited=""
for v in $(env | sed -n 's/^\(WOW_[A-Za-z0-9_]*\)=.*/\1/p'); do
case "$v" in WOW_DATA | WOW_HOST | WOW_BG | WOW_SMOKE_KEEP) continue ;; esac
unset "$v"
# The account is in $user/$pass/$char now and each leg passes what it needs by name (the realm
# leg refuses a WOW_CHAR), so it leaves the environment either way. It was only "ignored"
# when the checkout's declared identity took its place.
[ -n "$PROBE_DECLARED" ] || case "$v" in WOW_USER | WOW_PASS | WOW_CHAR) continue ;; esac
inherited="$inherited $v"
unset "$v"
done
[ -n "$inherited" ] &&
echo "smoke: ignoring inherited env —$inherited (each leg names its own; a gate is not shell-dependent)"