| Update CGI to markdown and update to current state. - geomyidae - A small C-bas… | |
| git clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfri… | |
| Log | |
| Files | |
| Refs | |
| Tags | |
| README | |
| LICENSE | |
| --- | |
| commit 1375ce4688358eca4db5bd1f0309863a574d250e | |
| parent 3c94b78e68c271bca2c9304e38895747bf67e347 | |
| Author: Christoph Lohmann <[email protected]> | |
| Date: Tue, 16 Jun 2020 12:40:48 +0200 | |
| Update CGI to markdown and update to current state. | |
| Diffstat: | |
| D CGI | 103 -----------------------------… | |
| A CGI.md | 108 +++++++++++++++++++++++++++++… | |
| 2 files changed, 108 insertions(+), 103 deletions(-) | |
| --- | |
| diff --git a/CGI b/CGI | |
| @@ -1,103 +0,0 @@ | |
| -INTRODUCTION | |
| - | |
| -Geomyidae has support for running scripts on each request, which will generate | |
| -dynamic content. | |
| - | |
| -There are two modes: standard cgi and dynamic cgi. | |
| -(»CGI« as name was just taken, because that's easier to compare to the web.) | |
| - | |
| - | |
| -PERMISSIONS | |
| - | |
| -The scripts are run using the permissions of geomyidae. It is advised to use | |
| -the -g and -u options of geomyidae. | |
| - | |
| - | |
| -BEFOREHAND | |
| - | |
| -In these examples C: is what the client sends and S: what the server is | |
| -sending. | |
| - | |
| - | |
| -CALLING CONVENTION | |
| - | |
| -Geomyidae will call the script like this: | |
| - | |
| - % $gopherroot/test.cgi $search $arguments $host $port | |
| - | |
| -When it is a plain request, the arguments will have these values: | |
| - | |
| - C: /test.cgi | |
| - -> $search = "" | |
| - -> $arguments = "" | |
| - -> $host = server host | |
| - -> $port = server port | |
| - | |
| -If the request is for a type 7 search element, then the entered string by | |
| -the user will be seen as following: | |
| - | |
| - C: /test.cgi searchterm (There is a TAB in-betwe… | |
| - -> $search = »searchterm« | |
| - -> $arguments = "" | |
| - -> $host = server host | |
| - -> $port = server port | |
| - | |
| -When you are trying to give your script some calling arguments, the syntax | |
| -is: | |
| - | |
| - C: /test.cgi?hello | |
| - -> $search = "" | |
| - -> $arguments = »hello« | |
| - -> $host = server host | |
| - -> $port = server port | |
| - | |
| -If both ways of input are combined, the variables are set as following: | |
| - | |
| - C: /test.cgi?hello=world searchterm (Beware! A Tab!) | |
| - -> $search = »searchterm« | |
| - -> $arguments = »hello=world« | |
| - -> $host = server host | |
| - -> $port = server port | |
| - | |
| - | |
| -STANDARD CGI | |
| - | |
| -The file extension »cgi« switches to this mode, where the output of the | |
| -script is not interpreted at all by the server and the script needs to send | |
| -raw content. | |
| - | |
| - % cat test.cgi | |
| - #!/bin/sh | |
| - echo "Hello my friend." | |
| - % | |
| - | |
| -The client will receive: | |
| - | |
| - S: Hello my friend. | |
| - | |
| - | |
| -DYNAMIC CGI | |
| - | |
| -For using dynamic CGI, the file needs to end in »dcgi«, which will switch on | |
| -the interpretation of the returned lines by the server. The interpreted for- | |
| -mat is the same as in the *.gph files. | |
| - | |
| - % cat test.dcgi | |
| - #!/bin/sh | |
| - echo "[1|Some link|/somewhere|server|port]" | |
| - % | |
| - | |
| -Here geomyidae will interpret the *.gph format and return the valid gopher | |
| -menu item. | |
| - | |
| - S: 1Some link /somewhere gopher.r-36.net 70 | |
| - | |
| -For outputting large texts and having minor hassles with the content, prepend | |
| -»t« to every line beginning with »t« or all lines: | |
| - | |
| - % cat filereader.dcgi | |
| - #!/bin/sh | |
| - cat bigfile.txt | sed 's,^t,&&,' | |
| - | |
| -Have fun! | |
| - | |
| diff --git a/CGI.md b/CGI.md | |
| @@ -0,0 +1,108 @@ | |
| +# INTRODUCTION TO CGI | |
| + | |
| +Geomyidae has support for running scripts on each request, which will | |
| +generate dynamic content. | |
| + | |
| +There are two modes: standard cgi and dynamic cgi. (»CGI« as name was | |
| +just taken, because that's easier to compare to the web.) | |
| + | |
| + | |
| +## PERMISSIONS | |
| + | |
| +The scripts are run using the permissions of geomyidae. It is advised to | |
| +use the -g and -u options of geomyidae. | |
| + | |
| + | |
| +## BEFOREHAND | |
| + | |
| +In these examples C: is what the client sends and S: what the server is | |
| +sending. | |
| + | |
| + | |
| +## CALLING CONVENTION | |
| + | |
| +Geomyidae will call the script like this: | |
| + | |
| + % $gopherroot/test.cgi $search $arguments $host $port | |
| + | |
| +When it is a plain request, the arguments will have these values: | |
| + | |
| + C: /test.cgi | |
| + -> $search = "" | |
| + -> $arguments = "" | |
| + -> $host = server host | |
| + -> $port = server port | |
| + | |
| +If the request is for a type 7 search element, then the entered string by | |
| +the user will be seen as following: | |
| + | |
| + C: /test.cgi searchterm (There is a TAB in-betwe… | |
| + -> $search = »searchterm« | |
| + -> $arguments = "" | |
| + -> $host = server host | |
| + -> $port = server port | |
| + | |
| +When you are trying to give your script some calling arguments, the syntax | |
| +is: | |
| + | |
| + C: /test.cgi?hello | |
| + -> $search = "" | |
| + -> $arguments = »hello« | |
| + -> $host = server host | |
| + -> $port = server port | |
| + | |
| +If both ways of input are combined, the variables are set as following: | |
| + | |
| + C: /test.cgi?hello=world searchterm (Beware! A Tab!) | |
| + -> $search = »searchterm« | |
| + -> $arguments = »hello=world« | |
| + -> $host = server host | |
| + -> $port = server port | |
| + | |
| + | |
| +## STANDARD CGI | |
| + | |
| +The file extension »cgi« switches to this mode, where the output of | |
| +the script is not interpreted at all by the server and the script needs | |
| +to send raw content. | |
| + | |
| + % cat test.cgi | |
| + #!/bin/sh | |
| + echo "Hello my friend." | |
| + % | |
| + | |
| +The client will receive: | |
| + | |
| + S: Hello my friend. | |
| + | |
| + | |
| +## DYNAMIC CGI | |
| + | |
| +For using dynamic CGI, the file needs to end in »dcgi«, which will | |
| +switch on the interpretation of the returned lines by the server. The | |
| +interpreted for- mat is the same as in the .gph files. | |
| + | |
| + % cat test.dcgi | |
| + #!/bin/sh | |
| + echo "[1|Some link|/somewhere|server|port]" | |
| + % | |
| + | |
| +Here geomyidae will interpret the .gph format and return the valid | |
| +gopher menu item. | |
| + | |
| + S: 1Some link /somewhere gopher.r-36.net 70 | |
| + | |
| +For outputting large texts and having minor hassles with the content, | |
| +prepend »t« to every line beginning with »t« or all lines: | |
| + | |
| + % cat filereader.dcgi | |
| + #!/bin/sh | |
| + cat bigfile.txt | sed 's,^t,&&,' | |
| + | |
| +## ENVIRONMENT VARIABLES | |
| + | |
| +Please see the manpage geomyidae(8) for all variables and their content. | |
| + | |
| + | |
| +Have fun! | |
| + |