From a9672bd5afd962f33f869b7cdb333c8cb70060f4 Mon Sep 17 00:00:00 2001 From: Pagan Gazzard Date: Tue, 19 Aug 2014 18:09:19 +0100 Subject: [PATCH] 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. --- src/enterContainer.sh | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/enterContainer.sh b/src/enterContainer.sh index 98bd19a8..a3301e50 100644 --- a/src/enterContainer.sh +++ b/src/enterContainer.sh @@ -3,10 +3,16 @@ 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 -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:${SUPERVISOR_SOCKET_PATH}/host - >& /dev/null -socat UNIX:${SUPERVISOR_SOCKET_PATH}/${SOCKET_NAME} -,raw,echo=0 +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