aboutsummaryrefslogtreecommitdiff
path: root/watchdir
diff options
context:
space:
mode:
Diffstat (limited to 'watchdir')
-rwxr-xr-xwatchdir52
1 files changed, 52 insertions, 0 deletions
diff --git a/watchdir b/watchdir
new file mode 100755
index 0000000..fe215b2
--- /dev/null
+++ b/watchdir
@@ -0,0 +1,52 @@
+#! /bin/sh
+
+usage()
+{
+ echo "$0 [-s <size>] [-r] [-h] [-d <subdir>] <dir>"
+}
+
+REGEN=0
+SIZE=96
+
+while getopts rs:d:h arg
+do
+ case $arg in
+ r) REGEN=1
+ ;;
+ s) SIZE="$OPTARG"
+ ;;
+ h) usage
+ exit 0
+ ;;
+ d) SUBDIR="$OPTARG"
+ ;;
+ ?) usage >&2
+ exit 1
+ ;;
+ esac
+done
+
+shift $(($OPTIND - 1))
+
+if [ $# != 1 ]; then
+ usage >&2
+ exit 1
+fi
+
+DIR="$1"
+
+[ "$REGEN" -eq 1 ] && "$(dirname $0)/tngen" \
+ ${SIZE:+-s$SIZE} \
+ -d "$DIR" \
+ "$DIR/user"
+
+while :
+do
+ F="$(inotifywait -e modify,move,create,delete \
+ --format "%w%f" -qr "$DIR/user/")"
+ sleep 1 # TODO: revisit this
+ "$(dirname $0)/tngen" \
+ ${SIZE:+-s$SIZE} \
+ -d "$DIR" \
+ "$F"
+done