]> git.donarmstrong.com Git - bin.git/blob - evince_annot
add git-hogs command
[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  if which okular > /dev/null 2>&1; then
26      okular "file.pdf"
27  else 
28      ## evince really should just use the same document-directory
29      gsettings set org.gnome.Evince document-directory "'file://$TMPDIR/b'";
30      evince "file.pdf"
31  fi;
32 );
33
34 if ! cmp "$TMPDIR/b/file.pdf" "$TMPDIR/c/file.pdf"; then
35     (cd "$TMPDIR";
36      diff -Nura a b ) | qprint --encode --binary > "$ANNOT_FILE"
37 fi;
38 if ! [ -s "$ANNOT_FILE" ]; then
39     rm -f "$ANNOT_FILE";
40 fi;
41 rm -f "$TMPDIR/a/file.pdf"
42 rm -f "$TMPDIR/b/file.pdf"
43 rm -f "$TMPDIR/c/file.pdf"
44 rmdir "$TMPDIR/a" "$TMPDIR/b" "$TMPDIR/c" "$TMPDIR"