From 4fa28842044d48626b51c94a67ccf623d9a9383f Mon Sep 17 00:00:00 2001 From: Minteck Date: Sun, 14 Nov 2021 19:09:34 +0000 Subject: Commit --- preprocessor/main.sh | 55 +++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 16 deletions(-) (limited to 'preprocessor/main.sh') diff --git a/preprocessor/main.sh b/preprocessor/main.sh index 5aff989..081e5a1 100755 --- a/preprocessor/main.sh +++ b/preprocessor/main.sh @@ -1,17 +1,40 @@ #!/bin/bash -data=$(cat index.bhtml | envsubst) -echo "HTTP/1.1 200 OK" -echo "Server: Bashweb" -echo "Date: $(date)" -echo "Content-Type: text/html; charset=utf-8" -echo "Content-Length: ${#data}" -echo "Connection: keep-alive" -echo "X-Frame-Options: SAMEORIGIN" -echo "X-XSS-Protection: 1; mode=block" -echo "Cache-Control: private, no-cache, no-store, must-revalidate" -echo "X-Content-Type-Options: nosniff" -echo "Pragma: no-cache" -echo "Expires: Sat, 01 Jan 2000 00:00:00 GMT" -echo "Referrer-Policy: no-referrer-when-downgrade" -echo "" -echo $data +read -r REQUEST_LINE +export REQUEST_LINE="$REQUEST_LINE" +export REQUEST_METHOD=$(echo "$REQUEST_LINE" | cut -d' ' -f1) +export REQUEST_DOCUMENT=$(echo "$REQUEST_LINE" | cut -d' ' -f2) +export REQUEST_PROTOCOL=$(echo "$REQUEST_LINE" | rev | cut -d' ' -f1 | rev) + +export e404=$(cat errors/404.bhtml | envsubst) + +echo "./public/$(./preprocessor/url.sh $REQUEST_DOCUMENT)" >> log +if [ -f "./public/$(./preprocessor/url.sh $REQUEST_DOCUMENT)" ]; then + if [[ $(file --mime-type -b "./public/$(./preprocessor/url.sh $REQUEST_DOCUMENT)") == text/html ]]; then + export data=$(cat "./public/$(./preprocessor/url.sh $REQUEST_DOCUMENT)" | envsubst) + fi + + echo "HTTP/1.1 200 OK" + echo "Server: Bashweb/"$bashweb_version"; bash/"$(bash --version | head -1 | cut -d' ' -f4)"; "$(uname -s)"/"$(uname -r) + echo "Connection: close" + if [[ $(file --mime-type -b "./public/$(./preprocessor/url.sh $REQUEST_DOCUMENT)") == text/html ]]; then + echo "Content-Length: "$(echo "$data" | wc -c) + fi + echo "Content-Type: "$(file --mime-type -b "./public/$(./preprocessor/url.sh $REQUEST_DOCUMENT)") + echo $(file --mime-type -b "./public/$(./preprocessor/url.sh $REQUEST_DOCUMENT)") >> log + echo "" + #echo "$data" + #echo "garbage" + if [[ $(file --mime-type -b "./public/$(./preprocessor/url.sh $REQUEST_DOCUMENT)") == text/html ]]; then + echo "$data" + else + cat "./public/$(./preprocessor/url.sh $REQUEST_DOCUMENT)" + fi +else + echo "HTTP/1.1 404 Not Found" + echo "Server: Bashweb/"$bashweb_version"; bash/"$(bash --version | head -1 | cut -d' ' -f4)"; "$(uname -s)"/"$(uname -r) + echo "Connection: close" + echo "Content-Length: "$(echo "$e404" | wc -c) + echo "Content-Type: text/html" + echo "" + echo "$e404" +fi -- cgit