balena-supervisor/src/enterContainer.sh
Pagan Gazzard a9672bd5af Make sure that the command socket exists and is a socket.
This handles the case of running an updated supervisor on an old image which doesn't support host commands - printing out a nice message and waiting rather than exiting silently.
2015-10-13 13:10:12 -03:00

19 lines
653 B
Bash

#!/bin/bash
SOCKET_NAME=test-${1}-${2}-${3}
HOST_DATA_PATH=/resin-data/resin-supervisor
HOST_SOCKET=${HOST_DATA_PATH}/${SOCKET_NAME}
SUPERVISOR_SOCKET_PATH=/data
COMMAND_SOCKET=${SUPERVISOR_SOCKET_PATH}/host
if [ ! -S ${COMMAND_SOCKET} ]; then
echo 'TTY mode not supported on this image, please update.'
sleep infinity
else
echo "
rm -f ${HOST_SOCKET}
socat UNIX-LISTEN:${HOST_SOCKET} EXEC:'${HOST_DATA_PATH}/enter.sh ${1}',pty,setsid,setpgid,stderr,ctty &
exit
" | socat UNIX:${COMMAND_SOCKET} - >& /dev/null
socat UNIX:${SUPERVISOR_SOCKET_PATH}/${SOCKET_NAME} -,raw,echo=0
fi