summaryrefslogtreecommitdiff
path: root/scripts/daemons/notifd
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/daemons/notifd')
-rwxr-xr-xscripts/daemons/notifd35
1 files changed, 35 insertions, 0 deletions
diff --git a/scripts/daemons/notifd b/scripts/daemons/notifd
new file mode 100755
index 0000000..9ad5697
--- /dev/null
+++ b/scripts/daemons/notifd
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+. "lib_handle.sh"
+
+FIFO=/tmp/noti.fifo
+FILE=/tmp/noti.txt
+
+[ -p "${FIFO}" ] || mkfifo "${FIFO}"
+
+exec 3<"${FIFO}"
+exec 4>"${FIFO}"
+
+tpid=""
+
+cancel() {
+ [ -n "${tpid}" ] && kill "${tpid}" 2>/dev/null
+ tpid=""
+}
+
+while read n <&3; do
+ [ "${n}" = "-1" ] && { cancel; continue; }
+
+ case "${n}" in ''|*[!0-9]*) continue ;; esac
+
+ cancel
+
+ [ "${n}" -gt 0 ] || { :>"${FILE}"; notify_handle reload; continue; }
+
+ (
+ sleep "${n}"
+ :>"${FILE}"
+ notify_handle reload
+ ) &
+ tpid=$!
+done