gebase/serve-request.sh

46 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env sh
PATH_TRANSLATED=`readlink -fn ./serve-request.awk`;
SERVER_NAME=`uname -n`;
if [ -n "$NCAT_REMOTE_ADDR" ];
then REMOTE_ADDR="$NCAT_REMOTE_ADDR";
elif [ -n "$SOCAT_PEERADDR" ];
then REMOTE_ADDR="$SOCAT_PEERADDR";
else REMOTE_ADDR="127.0.0.1";
fi
if [ -n "$SOCAT_SOCKPORT" ];
then SERVER_PORT="$SOCAT_SOCKPORT";
else SERVER_PORT="1965";
fi
read -r URL GARBAGE;
REQUEST_FULL_URL=${URL%?}; # Remove "\r" at the end
echo "$REQUEST_FULL_URL" | awk \
-v AUTH_TYPE="" \
-v CONTENT_LENGTH="" \
-v CONTENT_TYPE="" \
-v GATEWAY_INTERFACE="CGI/1.1" \
-v PATH_TRANSLATED="$PATH_TRANSLATED" \
-v REMOTE_ADDR="$REMOTE_ADDR" \
-v REMOTE_HOST="$REMOTE_ADDR" \
-v REMOTE_USER="" \
-v REQUEST_FULL_URL="$REQUEST_FULL_URL" \
-v REQUEST_METHOD="GET" \
-v SCRIPT_NAME="/" \
-v SERVER_NAME="$SERVER_NAME" \
-v SERVER_PORT="$SERVER_PORT" \
-v SERVER_PROTOCOL="GEMINI" \
-v SERVER_SOFTWARE="Gebase" \
-f lib/exec.awk \
-f lib/io.awk \
-f lib/str.awk \
-f lib/url.awk \
-f lib/request.awk \
-f lib/response.awk \
-f lib/tags.awk \
-f serve-request.awk