Some programs print stuff to stderr that are not errors and are
therefore not relevant to the usual build runs (e.g. openssl when
loading the PKCS#11 libraries), but they may still be useful for
debugging. When called with ptxd_exec_silent_stderr, stderr won't make
it to the terminal except with 'ptxdist -v', but the messages are still
available in the logfile.

Signed-off-by: Roland Hieber <r...@pengutronix.de>
---
PATCH v3:
 - no changes in content
 - dropped previous "[PATCH v2 1/5] ptxd_make_world_common: make the
   package name available to scripts" to keep the shell command line
   slim (feedback from Michael Olbrich)

PATCH v2: 
https://lore.ptxdist.org/ptxdist/20210809080608.23475-2-...@pengutronix.de
 - no changes

PATCH v1: 
https://lore.ptxdist.org/ptxdist/20210804142330.32739-2-...@pengutronix.de
---
 scripts/libptxdist.sh | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/scripts/libptxdist.sh b/scripts/libptxdist.sh
index ee0ba39d3ea3..bb508798cb6f 100644
--- a/scripts/libptxdist.sh
+++ b/scripts/libptxdist.sh
@@ -776,6 +776,24 @@ ptxd_exec() {
 }
 export -f ptxd_exec
 
+#
+# execute command with silenced stderr, except when verbose building is 
enabled.
+# the stderr output of the command will always be written to the logfile.
+#
+ptxd_exec_silent_stderr() {
+       exec 8>&2
+       if [ "${PTXDIST_VERBOSE}" == "1" ]; then
+               :
+       elif [ -n "${PTXDIST_FD_LOGFILE}" ]; then
+               exec 2>&9
+       else
+               exec 2>/dev/null
+       fi
+       "${@}"
+       exec 2>&8 8>&-
+}
+export -f ptxd_exec_silent_stderr
+
 #
 # check if a previously executed pipe returned an error
 #
-- 
2.30.2


_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de
To unsubscribe, send a mail with subject "unsubscribe" to 
ptxdist-requ...@pengutronix.de

Reply via email to