summaryrefslogtreecommitdiffstats
path: root/sysutils/consolekit/files/ck-get-x11-display-device
diff options
context:
space:
mode:
authorkwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059>2010-10-23 18:12:30 +0800
committerkwm <kwm@df743ca5-7f9a-e211-a948-0013205c9059>2010-10-23 18:12:30 +0800
commitddf063ee35ac65afcdd03866c71a84e8ed008429 (patch)
treed2c5eb5f1d56b65e30f96e64f60adcab44d7664c /sysutils/consolekit/files/ck-get-x11-display-device
parent018e57d3ca559349302f8c900caf60c7fe7d3861 (diff)
downloadmarcuscom-ports-ddf063ee35ac65afcdd03866c71a84e8ed008429.tar
marcuscom-ports-ddf063ee35ac65afcdd03866c71a84e8ed008429.tar.gz
marcuscom-ports-ddf063ee35ac65afcdd03866c71a84e8ed008429.tar.bz2
marcuscom-ports-ddf063ee35ac65afcdd03866c71a84e8ed008429.tar.lz
marcuscom-ports-ddf063ee35ac65afcdd03866c71a84e8ed008429.tar.xz
marcuscom-ports-ddf063ee35ac65afcdd03866c71a84e8ed008429.tar.zst
marcuscom-ports-ddf063ee35ac65afcdd03866c71a84e8ed008429.zip
Update to 0.4.2.
git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@14825 df743ca5-7f9a-e211-a948-0013205c9059
Diffstat (limited to 'sysutils/consolekit/files/ck-get-x11-display-device')
-rw-r--r--sysutils/consolekit/files/ck-get-x11-display-device41
1 files changed, 41 insertions, 0 deletions
diff --git a/sysutils/consolekit/files/ck-get-x11-display-device b/sysutils/consolekit/files/ck-get-x11-display-device
new file mode 100644
index 000000000..7efc08471
--- /dev/null
+++ b/sysutils/consolekit/files/ck-get-x11-display-device
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+FSTAT="/usr/bin/fstat"
+GREP="/usr/bin/grep"
+AWK="/usr/bin/awk"
+SED="/usr/bin/sed"
+CAT="/bin/cat"
+
+dispnum=0
+if [ x"$1" = x"--display" ]; then
+ if [ $# != 2 ]; then
+ echo "usage: $0 [--display DISPLAY]"
+ exit 1
+ fi
+ DISPLAY=$2
+fi
+if [ ! -z "${DISPLAY}" ]; then
+ dispnum=$(echo ${DISPLAY} | ${SED} -E -e 's|:([0-9]+).*|\1|')
+fi
+
+if [ ! -f "/tmp/.X${dispnum}-lock" ]; then
+ echo "ERROR: Failed to find X lock file for display ${dispnum}"
+ exit 1
+fi
+pid=$(${CAT} "/tmp/.X${dispnum}-lock")
+
+device=$(${FSTAT} -p ${pid} | ${GREP} ttyv | ${AWK} '{print $8}')
+
+if [ -z "${device}" ]; then
+ echo "ERROR: Failed to find TTY device for X server on display ${dispnum}"
+ exit 1
+fi
+
+ret=""
+for dev in ${device}; do
+ if [ "${dev}" \> "${ret}" ]; then
+ ret=${dev}
+ fi
+done
+
+echo "/dev/${dev}"