-#!/bin/sh
+#!/bin/bash
if [ "x" = "x${DBUS_SESSION_BUS_ADDRESS}" ]; then
- DBUS_SESSION_BUS_ADDRESS:=unix:path=/run/user/$UID/bus
+ DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$UID/bus"
fi
+export DBUS_SESSION_BUS_ADDRESS
pretty() {
- sed \
- -e '/^method return .*/d' \
- -e 's/^Error org.freedesktop.DBus.Error.Failed: "\?\(.*\)"\?$/ERROR: \1/' \
- -e 's/^ string "\(.*\)"/\1/' \
- -e 's/},/&\n/'
+ sed ' /^method return .*/d
+ s/^Error org.freedesktop.DBus.Error.Failed: "\?\(.*\)"\?$/ERROR: \1/
+ s/^ string "\(.*\)"/\1/
+ s:[[{,]:&\n:g
+ s: *[]}]:\n&:g
+ ' |
+ sed ' s:^ *::
+ s: *$::
+ /[]}],*$/ {x;s:...::;x}
+ G
+ /[[{]\n/ {x;s:$: :;x}
+ s:^\(.*[^\n]\)\n\( *\)$:\2\1:
+ '
}
send() {
org.AGL.afm.user.$1 \
"string:$2" |
pretty
+ return ${PIPESTATUS[0]}
}
case "$1" in
send start "\"$i\""
;;
+ run-remote|start-remote)
+ i=$2
+ send start '{"id":"'"$i"'","mode":"remote"}'
+ ;;
+
+ once)
+ i=$2
+ send once "\"$i\""
+ ;;
+
terminate|kill)
i=$2
send terminate "$i"
stop|pause)
i=$2
- send stop "$i"
+ send pause "$i"
;;
resume|continue)
i=$2
- send continue "$i"
+ send resume "$i"
;;
state|status)
run id
start id start an instance of the widget of id
+ once id run once an instance of the widget of id
+
kill rid
- terminate rid terminate the running instance rid
+ terminate rid terminate the running instance rid
stop rid
- pause rid stop the running instance rid
+ pause rid pause the running instance rid
resume rid
- continue rid continue the previously rid
+ continue rid continue the previously paused rid
status rid
- state rid get status of the running instance rid
+ state rid get status of the running instance rid
EOC
;;