diff --git a/include/events.include.sh b/include/events.include.sh new file mode 100644 index 0000000..c0bff5e --- /dev/null +++ b/include/events.include.sh @@ -0,0 +1,44 @@ +# +# Triggered an event and executge associated scripts +# $1 event +# $2 cause +# + +function trigger_event { + + ## check_rain_online_after + ## check_rain_online_before + ## check_rain_online_change + ## check_rain_sensor_after + ## check_rain_sensor_before + ## check_rain_sensor_change + ## ev_close_after + ## ev_close_before + ## ev_open_after + ## ev_open_before + ## init_after + ## init_before + + local EVENT="$1" + local CAUSE="$2" + local current_event_dir="$EVENT_DIR/$EVENT" + + if [ -d "$current_event_dir" ]; then + local FILES="$current_event_dir/*" + for f in $FILES + do + if [ -x "$f" ]; then + $f "$EVENT" "$CAUSE" `date +%s` &> /dev/null & + local ec=$? + if [ $ec -ne 0 ]; then + log_write "Stop events chain for exit code $ec in $current_event_dir/$f" + exit + fi + fi + done + + fi + +} + +