38 lines
1.1 KiB
Bash
38 lines
1.1 KiB
Bash
#!/bin/sh
|
|
set -eu
|
|
|
|
if [ -z "${AUTHORIZED_KEY:-}" ]; then
|
|
echo "AUTHORIZED_KEY is required" >&2
|
|
exit 1
|
|
fi
|
|
|
|
REMOTE_HTTP_PORT="${REMOTE_HTTP_PORT:-43173}"
|
|
REMOTE_WS_PORT="${REMOTE_WS_PORT:-43174}"
|
|
|
|
mkdir -p /home/dev/.ssh /root/.ssh /run/sshd
|
|
printf '%s\n' "$AUTHORIZED_KEY" > /home/dev/.ssh/authorized_keys
|
|
printf '%s\n' "$AUTHORIZED_KEY" > /root/.ssh/authorized_keys
|
|
chown -R dev:dev /home/dev/.ssh
|
|
chmod 700 /home/dev/.ssh
|
|
chmod 600 /home/dev/.ssh/authorized_keys
|
|
chmod 700 /root/.ssh
|
|
chmod 600 /root/.ssh/authorized_keys
|
|
|
|
python3 -m http.server "$REMOTE_HTTP_PORT" --bind 127.0.0.1 --directory /srv/www >/tmp/http.log 2>&1 &
|
|
HTTP_PID=$!
|
|
python3 /usr/local/bin/ws_echo.py --host 127.0.0.1 --port "$REMOTE_WS_PORT" >/tmp/ws.log 2>&1 &
|
|
WS_PID=$!
|
|
|
|
sleep 0.2
|
|
if ! kill -0 "$HTTP_PID" 2>/dev/null; then
|
|
echo "HTTP fixture failed to start (see /tmp/http.log)" >&2
|
|
cat /tmp/http.log >&2 || true
|
|
exit 1
|
|
fi
|
|
if ! kill -0 "$WS_PID" 2>/dev/null; then
|
|
echo "WebSocket fixture failed to start (see /tmp/ws.log)" >&2
|
|
cat /tmp/ws.log >&2 || true
|
|
exit 1
|
|
fi
|
|
|
|
exec /usr/sbin/sshd -D -e
|