Executing /bin/bash explicitly
[src/app-framework-main.git] / scripts / afm-util
index 243b43c..bbab51b 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 
 if [ "x" = "x${DBUS_SESSION_BUS_ADDRESS}" ]; then
        DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$UID/bus"
@@ -6,11 +6,19 @@ 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() {
@@ -20,6 +28,7 @@ send() {
                org.AGL.afm.user.$1 \
                "string:$2" |
        pretty
+       return ${PIPESTATUS[0]}
 }
 
 case "$1" in
@@ -52,6 +61,16 @@ 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"
@@ -96,6 +115,8 @@ The commands are:
   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