summaryrefslogtreecommitdiffstats
path: root/w3watch
diff options
context:
space:
mode:
Diffstat (limited to 'w3watch')
-rwxr-xr-xw3watch50
1 files changed, 50 insertions, 0 deletions
diff --git a/w3watch b/w3watch
new file mode 100755
index 0000000..02d97e4
--- /dev/null
+++ b/w3watch
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+mkdir -p ~/.w3watch/cache || exit 1
+
+if [ ! -f ~/.w3watch/urls ]; then
+ echo "~/.w3watch/urls not found!"
+ exit 1
+fi
+
+if [ -f ~/.w3watch/lock ]; then
+ echo "w3watch already running"
+ exit 1
+fi
+
+touch ~/.w3watch/lock || exit 1
+
+
+for i in $(cat ~/.w3watch/urls); do
+ dump=$(lynx -dump "$i")
+ if [ $? -ne 0 ]; then
+ rm -f ~/.w3watch/lock
+ exit 1
+ fi
+
+ sum=$(echo "$i" | sha1sum | awk '{print $1;}')
+ cachefile=~/.w3watch/cache/${sum}
+
+ if [ -f "$cachefile" ]; then
+ echo "$dump" | diff -u --label "$i" "$cachefile" -
+ fi
+
+ echo "$dump" > "$cachefile"
+done
+
+# remove old cache entries
+for i in ~/.w3watch/cache/*; do
+ sumi=$(basename "$i")
+
+ for j in $(cat ~/.w3watch/urls); do
+ sumj=$(echo "$j" | sha1sum | awk '{print $1;}')
+
+ if [ "$sumi" == "$sumj" ]; then
+ continue 2
+ fi
+ done
+
+ rm -f $i
+done
+
+rm -f touch ~/.w3watch/lock \ No newline at end of file