-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgenerate-pdfs.sh
executable file
·52 lines (35 loc) · 1.08 KB
/
generate-pdfs.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/bin/bash
set -e
[[ ! `which git` ]] && { echo "git is required" 1>&2; exit 1; }
[[ ! `which lyx` ]] && { echo "lyx is required" 1>&2; exit 1; }
deleteGeneratedTmpFiles(){
find "$PWD" -name '.generated.version' -delete
}
touchedLyxFileBases=()
deleteAllTmp(){
deleteGeneratedTmpFiles
local tmpFiles=()
for touchedLyxFileBase in "${touchedLyxFileBases[@]}"; do
for rmfile in "$touchedLyxFileBase".{aux,log,out,tex,nlo,toc,lof,lot,synctex}; do
[[ -s "$rmfile" ]] && tmpFiles+=("$rmfile");
done;
done;
(( "${#tmpFiles[@]}" > 0 )) && rm "${tmpFiles[@]}"
}
trap 'deleteAllTmp' EXIT
deleteGeneratedTmpFiles
description=$(git describe --tags --match 'v[0-9]*' --always --dirty='-SNAPSHOT')
logfile="$(basename "$BASH_SOURCE").log"
echo "Version $description"
for lyx in $(find "$PWD" -name '*.lyx');
do
folder="$(dirname "$lyx")"
base="${lyx%.lyx}"
echo -n "Generating $lyx ... "
pushd "$folder" > /dev/null
echo "$description" > ".generated.version"
touchedLyxFileBases+=("$base")
lyx --force-overwrite --export pdf2 "$lyx" &> "$logfile"
echo "done."
popd > /dev/null
done