parent
cf2ff5ca4c
commit
c15a524ced
@ -1,15 +1,34 @@
|
||||
## gprsh -- A simple Gopher server in a POSIX shell script
|
||||
## gosher -- A simple Gopher server in a POSIX shell script
|
||||
|
||||
|
||||
`gprsh` is a Gopher server in a shell script. It requires only a
|
||||
standard `netcat`.
|
||||
`gosher` is a Gopher server in a POSIX shell script. It requires only a
|
||||
standard `netcat(1)`.
|
||||
|
||||
You start the server using:
|
||||
|
||||
$ ./gprsh [<PORT> [<GOPHERDIR>]
|
||||
$ ./gosher [<PORT> [<GOPHERDIR>]
|
||||
|
||||
If PORT is not specified, it will bind on port 70. If GOPHERDIR is not
|
||||
provided, it defaults to "./".
|
||||
|
||||
`gprsh` reads the index.gph gopherfile in a folder and renders it as a
|
||||
gophermap.
|
||||
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.
|
||||
|
@ -0,0 +1,5 @@
|
||||
- add chroot and privilege drop
|
||||
- allow on-the-fly creation of gopherfle from a folder (set it active
|
||||
through an option)
|
||||
|
||||
|
@ -0,0 +1 @@
|
||||
gosher
|
@ -1 +0,0 @@
|
||||
gprsh
|
Loading…
Reference in new issue