cleanlog, reports.mk: factor the script out

Sometimes REPORT=1 just wasn't passed to make, and the build.log
saved is noisy and harder to compare through diff(1); let's move
the implementation out of the makefile and into a standalone
script so it can be reused like this:

  BUILDDIR=$(sed -rn "s/^mki-image-scripts: export GLOBAL_BUILDDIR='(.*)'$/\1/p" build/build.log
  bin/cleanlog < build/build.log > build/reports/clean.log

See "export GLOBAL_BUILDDIR=" line in the particular log
(grabbing that one from stdin is not exactly trivial though).
This commit is contained in:
Michael Shigorin 2019-06-06 11:42:34 +03:00
parent 0039b215ae
commit f8ae619bbb
2 changed files with 25 additions and 20 deletions

24
bin/cleanlog Executable file
View File

@ -0,0 +1,24 @@
#!/bin/sh
# try making build logs more diffable
# see also reports.mk
[ -n "$BUILDDIR" ] || exit 1
sed -r \
-e "s,$BUILDDIR,,g" \
-e '/\/var\/lib\/apt\/lists/d' \
-e 's/... .. ..:..:..//g' \
-e 's/\[[0-9]+\]//g' \
-e '/^(Reading Package Lists|Building Dependency Tree)/d' \
-e '/^(Fetched|Need to get|After unpacking) /d' \
-e '/^(Preparing packages for installation|Done\.)/d' \
-e '/^hsh(|-(initroot|install|fakedev|(mk|rm)chroot|run)): /d' \
-e '/^(hasher-priv|mkaptbox|(mk|rm)dir): /d' \
-e '/^mki-((invalidate-|)cache|check-obsolete|prepare): /d' \
-e '/^(mode of|changed (group|ownership)|removed) /d' \
-e '/^chroot\/.in\//d' \
-e '/ has started executing\.$/d' \
-e '/\/var\/log\/apt\.log$/d' \
-e '/\/usr\/share\/apt\/scripts\/log\.lua/d' \
-e '/\.rpm$/d' \
-e "/' -> '/d"

View File

@ -28,26 +28,7 @@ reports/prep:
# try to drop common noise rendering diff(1) mostly useless # try to drop common noise rendering diff(1) mostly useless
reports/cleanlog: reports/prep reports/cleanlog: reports/prep
@OUT="$(REPORTDIR)/$(@F).log"; \ @OUT="$(REPORTDIR)/$(@F).log"; \
sed -r \ BUILDDIR="$(BUILDDIR)" cleanlog < $(BUILDLOG) > "$$OUT" \
-e 's,$(BUILDDIR),,g' \
-e '/\/var\/lib\/apt\/lists/d' \
-e 's/... .. ..:..:..//g' \
-e 's/\[[0-9]+\]//g' \
-e '/^(Reading Package Lists|Building Dependency Tree)/d' \
-e '/^(Fetched|Need to get|After unpacking) /d' \
-e '/^(Preparing packages for installation|Done\.)/d' \
-e '/^hsh(|-(initroot|install|fakedev|(mk|rm)chroot|run)): /d' \
-e '/^(hasher-priv|mkaptbox|(mk|rm)dir): /d' \
-e '/^mki-((invalidate-|)cache|check-obsolete|prepare): /d' \
-e '/^(mode of|changed (group|ownership)|removed) /d' \
-e '/^chroot\/.in\//d' \
-e '/ has started executing\.$$/d' \
-e '/\/var\/log\/apt\.log$$/d' \
-e '/\/usr\/share\/apt\/scripts\/log\.lua/d' \
-e '/\.rpm$$/d' \
-e "/' -> '/d" \
< $(BUILDLOG) \
> "$(REPORTDIR)/$(@F).log" \
&& echo "** diffable log: $$OUT" $(SHORTEN) && echo "** diffable log: $$OUT" $(SHORTEN)
reports/scripts: reports/prep reports/scripts: reports/prep