Blob


1 #!/bin/sh
3 set -e
5 printf "20 text/plain; lang=en\r\n"
7 cat <<EOF
8 The Common Gateway Interface for Gemini
10 It really seems that the Common Gateway Interface (CGI, RFC-3875)
11 can be adapted for the Gemini protocol easily!
13 This is a test page for the CGI implementation in gmid[0], a small
14 and secure Gemini server. When in doubt, I'm trying to follow the
15 GLV-1.12556[1] behaviour. Sean Conner provides a similar page at [2].
18 CGI Environment Variables
20 <unspec> means "not set".
22 EOF
24 echo GATEWAY_INTERFACE=$GATEWAY_INTERFACE
25 echo GEMINI_DOCUMENT_ROOT=$GEMINI_DOCUMENT_ROOT
26 echo GEMINI_SCRIPT_FILENAME=$GEMINI_SCRIPT_FILENAME
27 echo GEMINI_URL=$GEMINI_URL
28 echo GEMINI_URL_PATH=$GEMINI_URL_PATH
29 echo PWD=$PWD
30 echo PATH_INFO=${PATH_INFO:-"<unspec>"}
31 echo PATH_TRANSLATED=${PATH_TRANSLATED:-"<unspec>"}
32 echo QUERY_STRING=$QUERY_STRING
33 echo GEMINI_SEARCH_STRING=${GEMINI_SEARCH_STRING:-"<unspec>"}
34 echo REMOTE_ADDR=$REMOTE_ADDR
35 echo REMOTE_HOST=$REMOTE_HOST
36 echo REQUEST_METHOD=$REQUEST_METHOD
37 echo SCRIPT_NAME=$SCRIPT_NAME
38 echo SERVER_NAME=$SERVER_NAME
39 echo SERVER_PORT=$SERVER_PORT
40 echo SERVER_PROTOCOL=$SERVER_PROTOCOL
41 echo SERVER_SOFTWARE=$SERVER_SOFTWARE
42 echo AUTH_TYPE=$AUTH_TYPE
43 echo REMOTE_USER=$REMOTE_USER
44 echo TLS_CLIENT_ISSUER=$TLS_CLIENT_ISSUER
45 echo TLS_CLIENT_HASH=$TLS_CLIENT_HASH
46 echo TLS_CLIENT_NOT_AFTER=$TLS_CLIENT_NOT_AFTER
47 echo TLS_CLIENT_NOT_BEFORE=$TLS_CLIENT_NOT_BEFORE
48 echo
49 echo
50 echo " CGI Argument List"
51 echo
52 echo "- $0"
53 for i in "$@"; do
54 echo "- $i"
55 done
57 cat <<EOF
60 notes
62 [0]: https://github.com/omar-polo/gmid
63 [1]: https://github.com/spc476/GLV-1.12556
64 [2]: gemini://gemini.conman.org/cgi
65 EOF