util/scripts: Add script to capture commands from build

This allows better debugging of the build by writing all the commands
run by the build into a file by replacing the standard shell.

Run with:
make SHELL="${PWD}/util/scripts/capture_commands.sh"

This will allow us to verify that the commands being run are posix
compliant.

Signed-off-by: Martin Roth <gaumless@gmail.com>
Change-Id: I67efc5096747c2e746642639f88273132e070e49
Reviewed-on: https://review.coreboot.org/c/coreboot/+/83442
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
This commit is contained in:
Martin Roth 2024-07-12 18:10:54 -06:00 committed by Felix Held
commit ced2a017f2
2 changed files with 19 additions and 0 deletions

View file

@ -0,0 +1,17 @@
#!/usr/bin/env sh
## SPDX-License-Identifier: BSD-3-Clause
# This script allows us to capture all the commands run in the shell by the
# coreboot build. This is better than using 'make v=1' because it captures
# commands right from the beginning of the build, and sends the output of any
# command to the interactive shell.
# To use, run:
# make SHELL="${PWD}/util/scripts/capture_commands.sh"
REALSHELL=${REALSHELL:-sh}
OUTPUT_DIR=${TOP:-/tmp}
CAPTURE_FILE=${CAPTURE_FILE:-commands.txt}
env echo "$*" | sed 's/^-c '// >> "${OUTPUT_DIR}/${CAPTURE_FILE}"
"${REALSHELL}" "$@"

View file

@ -1,4 +1,6 @@
__scripts__
* capture_commands.sh - Write all commands from the build to a file.
`Shell`
* _config_ - Manipulate options in a .config file from the command
line `Bash`
* _cross-repo-cherrypick_ - Pull in patches from another tree from a