tools: new tool to filter the output of make
Add brmake, a small script that redirects the build output log to a file, keeping just Buildroot's own messages, with the date+time added at the start of the line. We need to unbuffer the output of make so that, when the script is interrupted (SIGINT, ^C), there is no lingering output not yet digested by the logger loop. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Cc: Arnout Vandecappelle <arnout@mind.be> Cc: Ricardo Martincoski <ricardo.martincoski@gmail.com> Cc: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
parent
cb4184d905
commit
afdb545b28
@ -146,5 +146,6 @@ syntax, refer to http://www.methods.co.nz/asciidoc/userguide.html[].
|
||||
|
||||
=== Support scripts
|
||||
|
||||
Some scripts in the +support/+ directory are written in Python and should follow
|
||||
the https://www.python.org/dev/peps/pep-0008/[PEP8 Style Guide for Python Code].
|
||||
Some scripts in the +support/+ and +tools/+ directories are written in
|
||||
Python and should follow the
|
||||
https://www.python.org/dev/peps/pep-0008/[PEP8 Style Guide for Python Code].
|
||||
|
37
tools/brmake
Executable file
37
tools/brmake
Executable file
@ -0,0 +1,37 @@
|
||||
#!/bin/bash
|
||||
# (C) 2016, "Yann E. MORIN" <yann.morin.1998@free.fr>
|
||||
# License: WTFPL, https://spdx.org/licenses/WTFPL.html
|
||||
|
||||
main() {
|
||||
local found ret start d h m mf
|
||||
|
||||
if ! which unbuffer >/dev/null 2>&1; then
|
||||
printf "you need to install 'unbuffer' (from package expect or expect-dev)\n" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
start=${SECONDS}
|
||||
|
||||
( exec 2>&1; unbuffer make "${@}"; ) \
|
||||
> >( while read line; do
|
||||
printf "%(%Y-%m-%dT%H:%M:%S)T %s\n" -1 "${line}"
|
||||
done \
|
||||
|tee -a br.log \
|
||||
|grep --colour=never -E '>>>'
|
||||
)
|
||||
ret=${?}
|
||||
|
||||
d=$((SECONDS-start))
|
||||
printf "Done in "
|
||||
h=$((d/3600))
|
||||
d=$((d%3600))
|
||||
[ ${h} -eq 0 ] || { printf "%dh " ${h}; mf="02"; }
|
||||
m=$((d/60))
|
||||
d=$((d%60))
|
||||
[ ${m} -eq 0 ] || { printf "%${mf}dmin " ${m}; sf="02"; }
|
||||
printf "%${sf}ds\n" ${d}
|
||||
|
||||
return ${ret}
|
||||
}
|
||||
|
||||
main "${@}"
|
@ -2,6 +2,15 @@ This directory contains various useful scripts and tools for working
|
||||
with Buildroot. You need not add this directory in your PATH to use
|
||||
any of those tools, but you may do so if you want.
|
||||
|
||||
brmake
|
||||
a script that can be run instead of make, that prepends the date in
|
||||
front of each line, redirects all of the build output to a file
|
||||
("'br.log' in the current directory), and just outputs the Buildroot
|
||||
messages (those lines starting with >>>) on stdout.
|
||||
Do not run this script for interactive configuration (e.g. menuconfig)
|
||||
or on an unconfigured directory. The output is redirected so you will see
|
||||
nothing.
|
||||
|
||||
check-package
|
||||
a script that checks the coding style of a package's Config.in and
|
||||
.mk files, and also tests them for various types of typoes.
|
||||
|
Loading…
Reference in New Issue
Block a user