|
|
@@ -83,21 +83,30 @@ USAGEEOF
|
|
|
set -x
|
|
|
mount -t overlay -o lowerdir="$LOWER_DIR",upperdir="$UPPER_DIR",workdir="$WORK_DIR" overlay "$MOUNT_DIR"
|
|
|
set +x
|
|
|
- inotify_cmd "$MOUNT_DIR" |while read DIR EVT FILE;
|
|
|
+ inotify_cmd "$MOUNT_DIR" | handle_inotify_event
|
|
|
+}
|
|
|
+
|
|
|
+handle_inotify_event(){
|
|
|
+ while read DIR EVT FILE;
|
|
|
do
|
|
|
- echo "$DIR $EVT $FILE"
|
|
|
[[ "$EVT" =~ "ISDIR" ]] && continue
|
|
|
- RELPATH="$(realpath --relative-to="$MOUNT_DIR" "$DIR")/$FILE"
|
|
|
+ echo "$DIR $EVT $FILE"
|
|
|
+ local RELPATH="$(realpath --relative-to="$MOUNT_DIR" "$DIR")/$FILE"
|
|
|
|
|
|
[[ "$EVT" =~ "CLOSE_NOWRITE" ]] && [ ! -f "$UPPER_DIR/$RELPATH" ] && {
|
|
|
- echo touch "$MOUNT_DIR/$RELPATH"
|
|
|
- cat "$LOWER_DIR/$RELPATH" > "$MOUNT_DIR/$RELPATH"
|
|
|
- touch -c -r "$LOWER_DIR/$RELPATH" "$MOUNT_DIR/$RELPATH"
|
|
|
+ echo "$LOWER_DIR/$RELPATH" ">" "$MOUNT_DIR/$RELPATH"
|
|
|
+ (
|
|
|
+ cat "$LOWER_DIR/$RELPATH" > "$MOUNT_DIR/$RELPATH"
|
|
|
+ touch -c -r "$LOWER_DIR/$RELPATH" "$MOUNT_DIR/$RELPATH"
|
|
|
+ ) &
|
|
|
}
|
|
|
|
|
|
$WRITE_THROUGH && [[ ! "$EVT" =~ "CLOSE_NOWRITE" ]] && [ ! -f "$LOWER_DIR/$RELPATH" ] && {
|
|
|
- echo cat "$UPPER_DIR/$RELPATH" ">" "$LOWER_DIR/$RELPATH"
|
|
|
- cat "$UPPER_DIR/$RELPATH" > "$LOWER_DIR/$RELPATH"
|
|
|
+ echo "$UPPER_DIR/$RELPATH" ">" "$LOWER_DIR/$RELPATH"
|
|
|
+ (
|
|
|
+ cat "$UPPER_DIR/$RELPATH" > "$LOWER_DIR/$RELPATH"
|
|
|
+ touch -c -r "$UPPER_DIR/$RELPATH" "$LOWER_DIR/$RELPATH"
|
|
|
+ ) &
|
|
|
}
|
|
|
done
|
|
|
}
|