/
watcher-sphinx
executable file
·63 lines (51 loc) · 1.46 KB
/
watcher-sphinx
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
#!/bin/bash
LOGFILE=/var/tmp/watcher.log
EVENTS=close_write,delete,delete_self
function log {
echo "[`date +%y/%m/%d-%H:%M:%S`] $1" | tee -a $LOGFILE
}
# -------------------------------------------------------
# SET UP ROOT AND DOCS FOLDER
# -------------------------------------------------------
if [ $# -eq 0 ] ; then
ROOTFOLDER="`pwd`"
SOURCEFOLDER="$ROOTFOLDER/source"
else
ROOTFOLDER=$1
if [ $# -eq 1 ] ; then
SOURCEFOLDER="$ROOTFOLDER/source"
else
SOURCEFOLDER=$2
fi
fi
# -------------------------------------------------------
# START A LOCAL WEBSERVER FOR EASY ACCESS
# -------------------------------------------------------
log "Initial building"
cd $ROOTFOLDER;make html
#log "Starting local webserver at http://localhost:8001"
#cd $ROOTFOLDER/build/html; python -m SimpleHTTPServer 8001> /dev/null 2>&1 &
# -------------------------------------------------------
# MAIN CALL TO WATCH WHAT'S GOING ON INSIDE $FOLDER
# -------------------------------------------------------
log "Iniciando watcher de sphinx sobre $SOURCEFOLDER"
inotifywait --format "%f %e" -rme $EVENTS $SOURCEFOLDER | while read LINE
do
log "processing $LINE..."
set -- "$LINE"
IFS=" "; declare -a Array=($*)
FILE="${Array[0]}"
EVENT="${Array[1]}"
FILENAME=${FILE%.*}
FILEEXT=${FILE##*.}
IFS=""
# select by file extension
case $FILEEXT in
rst|png|tmp)
cd $ROOTFOLDER;make html
;;
*)
log "nothing to do with $FILE"
;;
esac
done