A rewrite of notify-log.

This commit is contained in:
Derek Taylor 2023-01-02 18:34:35 -06:00
parent 46e758679e
commit d4a8207fa8
1 changed files with 37 additions and 7 deletions

View File

@ -2,10 +2,40 @@
logfile=$1
dbus-monitor "interface='org.freedesktop.Notifications'" |\
grep --line-buffered "string" |\
grep --line-buffered -e method -e ":" -e '""' -e urgency -e notify -v |\
grep --line-buffered '.*(?=string)|(?<=string).*' -oPi |\
grep --line-buffered -v "sender-pid" |\
grep --line-buffered -v '^\s*$' |\
xargs -I '{}' echo {} >> "$logfile"
declare -a MSGBUF
STATE=off
MSGTIME=
printbuf() {
JOINED=$( echo "${MSGBUF[@]}" | sed 's/,$//' )
printf "%s\n%s\n" "--- ${MSGTIME} ---" "${JOINED}"
}
procmsg() {
if [[ "${1}" =~ member=Notify$ ]]; then
STATE=on
MSGTIME=$(date '+%Y-%m-%d %H:%M:%S')
MSGBUF=()
elif [[ "${1}" =~ member=NotificationClosed$ ]]; then
STATE=off
printbuf
else
if [[ "${STATE}" == "on" ]]; then
if [[ "${1}" =~ ^string ]]; then
case "${1}" in
"string \"\"") ;;
"string \"urgency\"") ;;
"string \"sender-pid\"") ;;
*)
MSGBUF+=$( echo -n "${1}," )
;;
esac
fi
fi
fi
}
dbus-monitor "interface='org.freedesktop.Notifications'" | \
while read -r line; do
procmsg "$line" >> "$logfile"
done