A simple Gopher server in a POSIX shell script
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
KatolaZ 6756f54d52 moved mkfifo outside netcat loop 6 years ago
README.md
TODO
gosher moved mkfifo outside netcat loop 6 years ago
gosher_serve

README.md

gosher -- A simple Gopher server in a POSIX shell script

gosher is a Gopher server in a POSIX shell script. It requires only a standard netcat(1).

You start the server using:

$ ./gosher [<PORT> [<GOPHERDIR>]

If PORT is not specified, it will bind on port 70. If GOPHERDIR is not provided, it defaults to "./".

If the selector is a directory, gosher will look for a file named gophermap to render the submenu. If a gophermap does not exist, gosher looks for the index.gph gopherfile in the folder and, if it exists, renders it as a gophermap.

Why gosher?

Just for fun. There are only a few TCP/IP application protocols left that can be implemented in a few dozen lines of POSIX shell script, and Gopher (RFC 1436) is one of those.

Why calling it gosher?

Well, gosher is just gopher where the p is replaced with an s, and sh(1) is all that you need to run gosher (if we leave netcat(1) out...).

Also, gopher is probably one of the few kosher protocols out there.

According to the Urban Dictionary, gosher is "an insult that can mean anything", so choose your own.