Always log xtrace to file

Signed-off-by: Michał Iwanicki <michal.iwanicki@3mdeb.com>
This commit is contained in:
Michał Iwanicki
2024-12-13 02:44:57 +01:00
parent a7cc299388
commit cdfba7c5cc
5 changed files with 29 additions and 35 deletions

View File

@@ -19,6 +19,7 @@ install:
install -m 0755 scripts/dts $(DESTDIR)$(SBINDIR)
install -m 0755 scripts/dts-boot $(DESTDIR)$(SBINDIR)
install -m 0755 scripts/ec_transition $(DESTDIR)$(SBINDIR)
install -m 0755 scripts/logging $(DESTDIR)$(SBINDIR)/logging
install -m 0755 reports/dasharo-hcl-report $(DESTDIR)$(SBINDIR)
install -m 0755 reports/touchpad-info $(DESTDIR)$(SBINDIR)

View File

@@ -50,8 +50,6 @@ SSH_OPT_UP="K"
SSH_OPT_LOW="$(echo $SSH_OPT_UP | awk '{print tolower($0)}')"
SEND_LOGS_OPT="L"
SEND_LOGS_OPT_LOW="$(echo $SEND_LOGS_OPT | awk '{print tolower($0)}')"
VERBOSE_OPT="V"
VERBOSE_OPT_LOW="$(echo $VERBOSE_OPT | awk '{print tolower($0)}')"
# Hardware variables:
SYSTEM_VENDOR="$($DMIDECODE dump_var_mock -s system-manufacturer)"

View File

@@ -1527,11 +1527,6 @@ show_footer(){
else
echo -e "${RED}${SEND_LOGS_OPT}${NORMAL} to enable sending DTS logs ${NORMAL}"
fi
if [ "${VERBOSE_ACTIVE}" == "true" ]; then
echo -ne "${RED}${VERBOSE_OPT}${NORMAL} to disable verbose mode ${NORMAL}"
else
echo -ne "${RED}${VERBOSE_OPT}${NORMAL} to enable verbose mode ${NORMAL}"
fi
echo -ne "${YELLOW}\nEnter an option:${NORMAL}"
}
@@ -1561,8 +1556,9 @@ footer_options(){
echo "Entering shell, to leave type exit and press Enter or press LCtrl+D"
echo ""
send_dts_logs
set_verbose "false"
stop_logging
${CMD_SHELL}
start_logging "$DTS_LOG_FILE"
# If in submenu before going to shell - return to main menu after exiting
# shell:
@@ -1583,13 +1579,6 @@ footer_options(){
export SEND_LOGS_ACTIVE="true"
fi
;;
"${VERBOSE_OPT}" | "${VERBOSE_OPT_LOW}")
if [ "${VERBOSE_ACTIVE}" == "true" ]; then
set_verbose "false"
else
set_verbose "true"
fi
;;
esac
return 1
@@ -1614,6 +1603,7 @@ send_dts_logs(){
mkdir $log_dir
cp ${DTS_LOG_FILE} $log_dir
cp ${DTS_VERBOSE_LOG_FILE} $log_dir
if [ -f ${ERR_LOG_FILE} ]; then
cp ${ERR_LOG_FILE} $log_dir
@@ -1744,22 +1734,3 @@ check_if_intel() {
return 0
fi
}
set_verbose() {
if [ $1 == "true" ]; then
VERBOSE_ACTIVE="true"
CMD_DASHARO_DEPLOY="/usr/bin/env bash -x $CMD_DASHARO_DEPLOY"
CMD_DASHARO_HCL_REPORT="/usr/bin/env bash -x $CMD_DASHARO_HCL_REPORT"
CMD_EC_TRANSITION="/usr/bin/env bash -x $CMD_EC_TRANSITION"
CMD_CLOUD_LIST="/usr/bin/env bash -x $CMD_CLOUD_LIST"
set -x
elif [ $1 == "false" ]; then
unset VERBOSE_ACTIVE
# Remove the -x option
CMD_DASHARO_DEPLOY=$(echo $CMD_DASHARO_DEPLOY | sed 's|^/usr/bin/env bash -x ||')
CMD_DASHARO_HCL_REPORT=$(echo $CMD_DASHARO_HCL_REPORT | sed 's|^/usr/bin/env bash -x ||')
CMD_EC_TRANSITION=$(echo $CMD_EC_TRANSITION | sed 's|^/usr/bin/env bash -x ||')
CMD_CLOUD_LIST=$(echo $CMD_CLOUD_LIST | sed 's|^/usr/bin/env bash -x ||')
set +x
fi
}

View File

@@ -14,6 +14,16 @@ export DTS_SUBS="$SBIN_DIR/dts-subscription.sh"
export DTS_HAL="$SBIN_DIR/dts-hal.sh"
export DTS_MOCK_COMMON="$SBIN_DIR/common-mock-func.sh"
export DTS_LOG_FILE="/tmp/dts.log"
export DTS_VERBOSE_LOG_FILE="/tmp/dts-verbose.log"
export BASH_ENV="/$SBIN_DIR/logging"
export SHELLOPTS
# shellcheck source=./logging
source "$BASH_ENV"
start_logging "$DTS_LOG_FILE"
exec {xtrace_fd}>>"${DTS_VERBOSE_LOG_FILE}"
export BASH_XTRACEFD=${xtrace_fd}
set -x
# shellcheck source=../include/dts-environment.sh
source $DTS_ENV
@@ -25,5 +35,5 @@ source $DTS_HAL
if [ -f $FUM_EFIVAR ]; then
$SBIN_DIR/dasharo-deploy update fum
else
$BIN_DIR/script -c $SBIN_DIR/dts "$DTS_LOG_FILE"
$SBIN_DIR/dts
fi

14
scripts/logging Normal file
View File

@@ -0,0 +1,14 @@
#!/bin/bash
start_logging() {
local file=$1
CURRENT_TTY="$(tty)"
exec 1>> >(tee >(stdbuf -i0 -oL -eL ts "[%T]: " >> "$file")) 2>&1
}
stop_logging() {
exec &>"$CURRENT_TTY"
}
export PS4="+[\$(date +%T.%3N)]:\${BASH_SOURCE[0]}:\${LINENO[0]}:\${FUNCNAME[0]:-main}: "
export CURRENT_TTY