File: dbus_wrapper.sh

package info (click to toggle)
fcitx5 5.1.18-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 32,228 kB
  • sloc: cpp: 110,377; java: 3,125; javascript: 2,137; sh: 1,912; xml: 1,552; python: 1,312; ansic: 843; makefile: 11
file content (37 lines) | stat: -rwxr-xr-x 712 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/sh

finish()
{
    if [ -n "$DBUS_SESSION_BUS_PID" ]; then
        kill "$DBUS_SESSION_BUS_PID" || exit 1
    fi
    if [ -n "$ADDRESS_FILE" ]; then
        rm -f -- "$ADDRESS_FILE"
    fi
    if [ -n "$PID_FILE" ]; then
        rm -f -- "$PID_FILE"
    fi
}

ADDRESS_FILE=
PID_FILE=

trap finish EXIT

ADDRESS_FILE=$(mktemp -p "$PWD" dbus-session-bus-address.XXXXXX)
PID_FILE=$(mktemp -p "$PWD" dbus-session-bus-pid.XXXXXX)

DBUS_DAEMON=$1
shift

"$DBUS_DAEMON" --fork --session --print-address=3 --print-pid=4 \
  3> "$ADDRESS_FILE" 4> "$PID_FILE" || exit 1

DBUS_SESSION_BUS_ADDRESS=$(cat "$ADDRESS_FILE")
DBUS_SESSION_BUS_PID=$(cat "$PID_FILE")

export DBUS_SESSION_BUS_ADDRESS

"$@"
RET=$?
exit $RET