about summary refs log tree commit diff stats
path: root/build/latex/presentation/watch.sh
blob: e5147f2d369506d055d54e3868eb7b4024f1bd63 (plain) (blame)
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/usr/bin/env sh

help() {
    cat <<EOF
An simple watch script, useful to see the changes in the document as it evolves.

USAGE:
    watch.sh [OPTIONS] [COMMAND]

OPTIONS:
    --help          | -h
                            Display this help and exit.

    --open [READER] | -o [READER]
                            Open the build PDF in READER before waiting for changes.
                            READER defaults to the READER environment variable or
                            'zathura' if the env variable is unset.
    --sleeptime [T] | -s [T]
                            How long to sleep between each build attempt in seconds. The
                            time defaults to 10 seconds.
ARGUMENTS:
    READER := [[echo "\${READER-zathura}"]]
                            The reader to open the build PDF with.

    T      := [[seq 1 100]]
                            The time to sleep between each build attempt.
EOF
}

reader=""
time="10"
for arg in "$@"; do
    case "$arg" in
    "--help" | "-h")
        help
        exit 0
        ;;

    "--open" | "-o")
        shift 1
        reader="$1"
        if [ -z "$reader" ]; then
            reader="${READER-zathura}"
        else
            shift 1
        fi
        ;;

    "--sleeptime" | "-s")
        shift 1
        time="$1"
        if [ -z "$time" ]; then
            time=10
        else
            shift 1
        fi
        ;;
    *)
        echo "'$1' is not a recognized option! See '--help' for more detail." 1>&2
        exit 1
        ;;
    esac
done

[ -n "$reader" ] && "$reader" ./build/%INIT_APPLICATION_NAME.pdf &

while true; do
    ./build.sh
    sleep "$time"
done