#!/bin/bash
# Copyright: Ankitects Pty Ltd and contributors
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html

# Monitor all web-related folders and rebuild and reload Anki's web stack
# when a change is detected.

set -e

MONITORED_FOLDERS=("ts/" "sass/" "qt/aqt/data/web/")
MONITORED_EVENTS=("Created" "Updated" "Removed")

on_change_detected="printf \\033c\\n; \"./tools/rebuild-web\""

event_args=""
for event in "${MONITORED_EVENTS[@]}"; do
    event_args+="--event ${event} "
done

# poll_monitor comes with a slight performance penalty, but seems to more
# reliably identify file system events across both macOS and Linux
fswatch -r -o -m poll_monitor ${event_args[@]} \
    "${MONITORED_FOLDERS[@]}" | xargs -n1 -I{} sh -c "$on_change_detected"
