]> git.donarmstrong.com Git - bin.git/blob - evince_annot
delete the annot file if it has size 0
[bin.git] / evince_annot
1 #!/bin/bash
2
3
4 set -x 
5 TMPDIR="$(mktemp -d)"
6
7 mkdir -p "$TMPDIR/a" "$TMPDIR/b" "$TMPDIR/c"
8 PDF_FILE="$(realpath "$1")"
9 ANNOT_FILE="$(realpath "${1}.annot")"
10 cp -l "$PDF_FILE" "$TMPDIR/a/file.pdf";
11 if [ -e "$ANNOT_FILE" ]; then
12     cp "$PDF_FILE" "$TMPDIR/b/file.pdf";
13     chmod u+w "$TMPDIR/b/file.pdf"
14     qprint --binary --decode "$ANNOT_FILE" | patch -d "$TMPDIR/b" --binary;
15     cp "$TMPDIR/b/file.pdf" "$TMPDIR/c/file.pdf";
16 else
17     cp "$PDF_FILE" "$TMPDIR/b/file.pdf";
18     cp "$PDF_FILE" "$TMPDIR/c/file.pdf";
19     chmod u+w "$TMPDIR/b/file.pdf"
20 fi;
21
22
23 (cd "$TMPDIR/b"
24  chmod u+w "file.pdf"
25  ## evince really should just use the same document-directory
26  gsettings set org.gnome.Evince document-directory "'file://$TMPDIR/b'";
27  evince "file.pdf"
28 );
29
30 if !cmp "$TMPDIR/b/file.pdf" "$TMPDIR/c/file.pdf"; then
31     (cd "$TMPDIR";
32      diff -Nura a b ) | qprint --encode --binary > "$ANNOT_FILE"
33 fi;
34 if ! [ -s "$ANNOT_FILE" ]; then
35     rm -f "$ANNOT_FILE";
36 fi;
37 rm -f "$TMPDIR/a/file.pdf"
38 rm -f "$TMPDIR/b/file.pdf"
39 rm -f "$TMPDIR/c/file.pdf"
40 rmdir "$TMPDIR/a" "$TMPDIR/b" "$TMPDIR/c" "$TMPDIR"