more robust extract-and-generate

This commit is contained in:
Motiejus Jakštys 2021-03-31 15:24:23 +03:00
parent ee34e97799
commit 96f04d225f
2 changed files with 19 additions and 14 deletions

View File

@ -5,6 +5,12 @@ SLIDES = slides-2021-03-29.pdf
NON_ARCHIVABLES = notes.txt referatui.txt slides-2021-03-29.txt NON_ARCHIVABLES = notes.txt referatui.txt slides-2021-03-29.txt
ARCHIVABLES = $(filter-out $(NON_ARCHIVABLES),$(shell git ls-files .)) ARCHIVABLES = $(filter-out $(NON_ARCHIVABLES),$(shell git ls-files .))
ifeq ($(shell git rev-parse --is-inside-git-dir),true)
GIT_DEP=$(shell git rev-parse --show-toplevel)/.git
else
GIT_DEP=
endif
.PHONY: test .PHONY: test
test: tests.sql .faux.db test: tests.sql .faux.db
./db -f tests.sql ./db -f tests.sql
@ -64,7 +70,7 @@ $(SOURCE):
wget http://download.geofabrik.de/europe/$@ wget http://download.geofabrik.de/europe/$@
REF = $(shell git describe --abbrev=12 --always --dirty) REF = $(shell git describe --abbrev=12 --always --dirty)
version.tex: Makefile $(shell git rev-parse --show-toplevel)/.git version.tex: Makefile $(GIT_DEP)
( \ ( \
TZ=UTC date '+\gdef\VCDescribe{%F ($(REF))}%'; \ TZ=UTC date '+\gdef\VCDescribe{%F ($(REF))}%'; \
) > $@ ) > $@

View File

@ -1,19 +1,15 @@
#!/bin/bash #!/bin/bash
set -euo pipefail set -euo pipefail
fail() {
>&2 echo "$1"
exit 1
}
dir=$(mktemp -d) dir=$(mktemp -d)
fname=mj-msc-all.pdf
echo "Extracting all files from the report ..." echo "Extracting all files from the report to $dir ..."
pdfdetach -saveall -o "$dir" mj-msc-all.pdf pdfdetach -saveall -o "$dir" "$fname"
echo "Re-generating the report..." echo "Generating $dir/$fname..."
fail=0 fail=0
make -C "$dir" -j $(nproc) mj-msc-all.pdf 2>&1 > make.log || fail=1 make -C "$dir" -j $(nproc) "$fname" > "$dir/make.log" 2>&1 || fail=1
if [[ $fail == 1 ]]; then if [[ $fail == 1 ]]; then
>&2 echo "Generation failed. Here are the last 10 log lines:" >&2 echo "Generation failed. Here are the last 10 log lines:"
@ -22,7 +18,10 @@ if [[ $fail == 1 ]]; then
fi fi
open=open open=open
if [[ $(uname) == Linux ]] [[ $(uname) == Linux ]] && open=xdg-open
open=xdg-open
fi echo "Opening $dir/$fname ..."
"$open" "$dir/mj-msc-all.pdf" "$open" "$dir/$fname"
echo "Editor has been closed. Removing $dir"
rm -fr "$dir"