scripts: properly restore stdout/err/in at the end

Byt the end of the main script, the log file is being moved and
compressed, and the final destination might become read-only at any
time, so we consign stdout/err to oblivion.

This is incorrect, as some actions after may still fail (out of space,
for example).

So, properly restore stdout/err, but also stdin (useless, but harmless)
instead, so the user has a chance to see the error, especially since it
is not logged into the log file.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
This commit is contained in:
Yann E. MORIN 2014-09-02 23:04:08 +02:00
parent de6b673394
commit 2864ae93af

View File

@ -655,9 +655,9 @@ CT_DoEnd INFO
# From now-on, it can become impossible to log any time, because # From now-on, it can become impossible to log any time, because
# either we're compressing the log file, or it can become RO any # either we're compressing the log file, or it can become RO any
# moment... Consign all ouptut to oblivion... # moment... Restore original stdout, stderr and stdin
CT_DoLog INFO "Finishing installation (may take a few seconds)..." CT_DoLog INFO "Finishing installation (may take a few seconds)..."
exec >/dev/null 2>&1 exec >&6 2>&7 <&8
rm -f ${CT_PREFIX_DIR}/build.log.bz2 rm -f ${CT_PREFIX_DIR}/build.log.bz2
if [ "${CT_LOG_TO_FILE}" = "y" ]; then if [ "${CT_LOG_TO_FILE}" = "y" ]; then
cp "${tmp_log_file}" "${CT_PREFIX_DIR}/build.log" cp "${tmp_log_file}" "${CT_PREFIX_DIR}/build.log"