summaryrefslogtreecommitdiff
path: root/dot
diff options
context:
space:
mode:
authorAndrew Cady <d@jerkface.net>2018-01-04 21:22:33 -0500
committerAndrew Cady <d@jerkface.net>2018-01-04 21:22:33 -0500
commit5148ebc85dc3e663eee3fc8156fa8589cf899acc (patch)
tree927cd6b0a95a914aa9edfeb3628ecb200dd5557a /dot
parent1cf925c91f27cca67cb641a602d98599a4228639 (diff)
new command: dbus-autolaunch
Diffstat (limited to 'dot')
-rwxr-xr-xdot/local/bin/dbus-autolaunch45
1 files changed, 45 insertions, 0 deletions
diff --git a/dot/local/bin/dbus-autolaunch b/dot/local/bin/dbus-autolaunch
new file mode 100755
index 0000000..6cc8653
--- /dev/null
+++ b/dot/local/bin/dbus-autolaunch
@@ -0,0 +1,45 @@
1#!/bin/sh
2DOUBLE_CHECK=y
3SESSION_FILE=$HOME/.dbus/default_session
4
5if [ "$*" ]; then
6 eval "$("$0")"
7 "$@"
8 exit
9fi
10
11dbus_available()
12{
13 dbus-send \
14 --session \
15 --dest=org.freedesktop.DBus \
16 --type=method_call \
17 /org/freedesktop/DBus \
18 org.freedesktop.DBus.ListNames >/dev/null 2>&1
19}
20
21dbus_available && exit
22
23if [ -r "$SESSION_FILE" ]; then
24
25 . "$SESSION_FILE"
26
27 if dbus_available; then
28 cat "$SESSION_FILE"
29 exit
30 fi
31
32fi
33
34mkdir -p "$HOME"/.dbus
35dbus-launch --sh-syntax > "$SESSION_FILE".$$ || exit
36mv "$SESSION_FILE".$$ "$SESSION_FILE" || exit
37
38if [ "$DOUBLE_CHECK" ]; then
39
40 . "$SESSION_FILE"
41 dbus_available || exit
42
43fi
44
45cat "$SESSION_FILE"