bsdinstall: stop messing with file descriptors

Throughout the bsdinstall script fd 3 is used by f_dprintf (set through
$TERMINAL_STDOUT_PASSTHRU). By closing file descriptor 3 here, the
final f_dprintf "Installation Completed ... does not work anymore.

By putting the code into a subshell, file descriptors can be edited
without interference with the calling script.

Reviewed by:		emaste
Differential Revision:	https://reviews.freebsd.org/D35113
Sponsored by:		Beckhoff Automation GmbH & Co. KG
MFC after:		3 days
This commit is contained in:
Corvin Köhne 2022-05-03 16:00:09 +02:00 committed by Emmanuel Vadot
parent d735d604f0
commit 1f7746d81f

View File

@ -115,12 +115,13 @@ fi
bsdinstall mount
# Fetch missing distribution files, if any
exec 3>&1
export BSDINSTALL_DISTDIR=$(`dirname $0`/fetchmissingdists 2>&1 1>&3)
FETCH_RESULT=$?
exec 3>&-
[ $FETCH_RESULT -ne 0 ] && error "Could not fetch remote distributions"
(
exec 3>&1
export BSDINSTALL_DISTDIR=$(`dirname $0`/fetchmissingdists 2>&1 1>&3)
FETCH_RESULT=$?
exec 3>&-
return $FETCH_RESULT
) || error "Could not fetch remote distributions"
# Unpack distributions
bsdinstall checksum