#!/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

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

#!/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

Make sure that the command socket exists and is a socket.
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.
