Fix sxmo_notificationmonitor.sh to ensure script running doesnt overlap; (kill)
This commit is contained in:
parent
4f118bb767
commit
7559984430
2 changed files with 22 additions and 16 deletions
|
@ -1,6 +1,12 @@
|
||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
|
trap gracefulexit INT TERM
|
||||||
NOTIFDIR="$XDG_CONFIG_HOME"/sxmo/notifications
|
NOTIFDIR="$XDG_CONFIG_HOME"/sxmo/notifications
|
||||||
|
|
||||||
|
gracefulexit() {
|
||||||
|
echo "Gracefully exiting $0"
|
||||||
|
kill -9 0
|
||||||
|
}
|
||||||
|
|
||||||
notificationhook() {
|
notificationhook() {
|
||||||
if [ -x "$XDG_CONFIG_HOME"/sxmo/hooks/notification ]; then
|
if [ -x "$XDG_CONFIG_HOME"/sxmo/hooks/notification ]; then
|
||||||
"$XDG_CONFIG_HOME"/sxmo/hooks/notification
|
"$XDG_CONFIG_HOME"/sxmo/hooks/notification
|
||||||
|
@ -42,11 +48,9 @@ recreateexistingnotifs() {
|
||||||
|
|
||||||
monitorforaddordelnotifs() {
|
monitorforaddordelnotifs() {
|
||||||
while true; do
|
while true; do
|
||||||
INOTIFYOUTPUT="$(
|
inotifywait -e create,moved_to,delete,delete_self,moved_from "$NOTIFDIR"/ | (
|
||||||
inotifywait -e create,moved_to,delete,delete_self,moved_from "$NOTIFDIR"/
|
INOTIFYOUTPUT="$(cat)"
|
||||||
)"
|
|
||||||
INOTIFYEVENTTYPE="$(echo "$INOTIFYOUTPUT" | cut -d" " -f2)"
|
INOTIFYEVENTTYPE="$(echo "$INOTIFYOUTPUT" | cut -d" " -f2)"
|
||||||
|
|
||||||
case "$INOTIFYEVENTTYPE" in
|
case "$INOTIFYEVENTTYPE" in
|
||||||
"CREATE"|"MOVED_TO")
|
"CREATE"|"MOVED_TO")
|
||||||
NOTIFFILE="$NOTIFDIR/$(echo "$INOTIFYOUTPUT" | cut -d" " -f3)"
|
NOTIFFILE="$NOTIFDIR/$(echo "$INOTIFYOUTPUT" | cut -d" " -f3)"
|
||||||
|
@ -57,9 +61,11 @@ monitorforaddordelnotifs() {
|
||||||
find "$NOTIFDIR"/ -type f -mindepth 1 | read -r || sxmo_setpineled green 0
|
find "$NOTIFDIR"/ -type f -mindepth 1 | read -r || sxmo_setpineled green 0
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
) & wait
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pgrep -f "$(command -v sxmo_notificationmonitor.sh)" | grep -Ev "^${$}$" | xargs kill
|
||||||
sxmo_setpineled green 0
|
sxmo_setpineled green 0
|
||||||
recreateexistingnotifs
|
recreateexistingnotifs
|
||||||
monitorforaddordelnotifs
|
monitorforaddordelnotifs
|
||||||
|
|
|
@ -17,7 +17,7 @@ writenotification() {
|
||||||
if [ "$NOTIFFILEPATHTOWRITE" = "random" ]; then
|
if [ "$NOTIFFILEPATHTOWRITE" = "random" ]; then
|
||||||
NOTIFFILEPATHTOWRITE="$NOTIFDIR/$(tr -dc 'a-zA-Z0-9' < /dev/urandom | head -c 10)"
|
NOTIFFILEPATHTOWRITE="$NOTIFDIR/$(tr -dc 'a-zA-Z0-9' < /dev/urandom | head -c 10)"
|
||||||
fi
|
fi
|
||||||
rm -f "$NOTIFFILEPATHTOWRITE"
|
touch "$NOTIFFILEPATHTOWRITE"
|
||||||
printf %b "$ACTION\n$WATCHFILE\n$NOTIFMSG\n" > "$NOTIFFILEPATHTOWRITE"
|
printf %b "$ACTION\n$WATCHFILE\n$NOTIFMSG\n" > "$NOTIFFILEPATHTOWRITE"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue