Hi Dmitry, On Wed, Mar 27, 2024 at 12:59:13AM +0200, Dmitry V. Levin wrote: > On Tue, Mar 26, 2024 at 09:49:48PM +0100, Mark Wielaard wrote: > > profile.sh might fail with set -o pipefail because: > > > > cat /dev/null "${prefix}/etc/debuginfod"/*.urls 2>/dev/null | tr '\n' ' ' > > > > might fail when there isn't an *.urls file the first command in the > > pipe fails (the 2>/dev/null is there to hide that failure). > [...] > > - DEBUGINFOD_URLS=$(cat /dev/null "@sysconfdir@/debuginfod"/*.urls > > 2>/dev/null | tr '\n' ' ') > > + DEBUGINFOD_URLS=$(cat /dev/null "@sysconfdir@/debuginfod"/*.urls > > 2>/dev/null | tr '\n' ' ' || echo -n "") > > The idiomatic expression in this case is ||:
Ah, yes. That is nicer indeed. Pushed with that change and updated commit message: commit 0ba2e4aa9945019a8c6db95d27d142b660a63a79 (HEAD -> main, origin/main) Author: Mark Wielaard <m...@klomp.org> Date: Tue Mar 26 21:42:39 2024 +0100 config: Make sure profile.sh succeeds with set -e and set -o pipefail profile.sh might fail with set -o pipefail because: cat /dev/null "${prefix}/etc/debuginfod"/*.urls 2>/dev/null | tr '\n' ' ' might fail when there isn't an *.urls file the first command in the pipe fails (the 2>/dev/null is there to hide that failure). This can be fixed by adding || : at the end. This works because : always succeeds and produces no outpur which is what the script expects when the command would fail. Also add a new testcase that runs profile.sh with bout set -e and set -o pipefail. * config/profile.sh.in: Add || : at end of pipe. * tests/run-debuginfod-client-profile.sh: New test. * tests/Makefile.am (TESTS): Add run-debuginfod-client-profile.sh. (EXTRA_DIST): Likewise. https://sourceware.org/bugzilla/show_bug.cgi?id=31562 Signed-off-by: Mark Wielaard <m...@klomp.org> Thanks, Mark