GEOMYS Gopher Server
Detect and bail on binary data that is not detected as malformed UTF-8. This also prevents trying to print garbage to the log. |
||
|---|---|---|
| lib | ||
| geomys.raku | ||
| LICENSE | ||
| nex2gopher.raku | ||
| README.md | ||
GEOMYS Gopher Server
This is the GEOMYS Gopher server software. It aims to be a very simple server that provides a few, spartan niceities while being very small and maintainable. It will automatically generate directory listings, but can also use hand-written listings.
It's written in Raku.
Dependencies:
- Data::TextOrBinary:ver<1.5>:authzef:raku-community-modules
Installing
- Extract it somewhere.
- Install the dependencies listed above.
- Run it:
raku geomys.raku <root-path> <server-name> [<binding> [<port>]]. Try running it without any arguments for the usage info as there's more there.
Usage
Create your root folder and put things in it that you want to make available to users. There are three special files you can make:
HEAD|HEAD.nex- Gophertext | nex* file that will be prepended to the listing (generated or not)INDEX|INDEX.nex- Gophertext | nex* file that will be used instead of a generated listingFOOT|FOOT.nex- Gophertext | nex* file that will be appended to the listing (generated or not)
These three special files and any files/directories that start with a period will not show up in generated listings. However, they can still be accessed if one knows the selector for them.
What is nex*?
Nex* is a (very slightly) modified version of the Nightfall Express document format. There are only two differences:
- Non-URL-format links MUST start with the Gopher type character of the linked resource (no spaces). Failure to do so will result in a broken link as the parser will consume the first character regardless of validity.
- Any text following a space character after a link is interpreted as the Gopher label.