1
0
mirror of https://github.com/mist-devel/mist-board.git synced 2026-02-06 16:14:42 +00:00
Files
mist-devel.mist-board/tools/docker-quartus/gen-xauth
2021-11-26 17:20:02 +01:00

37 lines
998 B
Bash
Executable File

#!/bin/bash
# generate xauth file for Docker container
CONTAINER_HOSTNAME=$1
XAUTH_FILE=$2
mkdir -p $(dirname $XAUTH_FILE)
# attempt to bring host DISPLAY/xauth to container
rm -f $XAUTH_FILE && touch $XAUTH_FILE
DOCKER_XAUTH=$(xauth list $DISPLAY | awk '{print $3}')
DOCKER_DISPLAY=$DISPLAY
# assume that <hostname>:# displays are TCP displays, use docker host IP as display in container
# this requres sshd_config option "X11UseLocalhost no"
if [[ $DISPLAY == $(hostname)* ]]; then
DOCKER_DISPLAY="172.17.0.1:$(echo $DISPLAY | cut -d : -f 2)"
fi
# if we have no magic cookie (e.g. bad DISPLAY, or wide-open DISPLAY), just bail
if [ "$DOCKER_XAUTH" == "" ]; then
echo $DOCKER_DISPLAY
exit
fi
# if DISPLAY is just :# (no hostname), assume this is a local unix-socket X11 server
if [[ $DOCKER_DISPLAY == :* ]]; then
xauth -f $XAUTH_FILE add $CONTAINER_HOSTNAME/unix$DOCKER_DISPLAY . $DOCKER_XAUTH
else
xauth -f $XAUTH_FILE add $DOCKER_DISPLAY . $DOCKER_XAUTH
fi
echo $DOCKER_DISPLAY