You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Go to file
dvkt 42f67a2c05 shell() 4 years ago
src shell() 4 years ago
.gitignore skeleton 4 years ago
Cargo.lock lean on GopherMap 4 years ago
Cargo.toml lean on GopherMap 4 years ago
README.md cgi-bin plan 4 years ago

README.md

      /       |
 ___ (___  ___|
|   )|   )|   )
|__/ |  / |__/
|

an esoteric gopher server.

point it at a directory and it'll serve up all its text files, sub-directories, and binary files over gopher.

special files:

  • header.gph: if it exists in a directory, its content will be shown above the directory's content. put ascii art in it.
  • footer.gph: same, but will be shown below a directory's content.
  • index.gph: completely replaces a directory's content with what's in this file.
  • ??.gph: visiting gopher://yoursite/1/dog/ will try to render dog.gph from disk.
  • .reverse: if this exists, the directory contents will be listed in reverse alphanumeric order. useful for phloggin'.

Any line in a .gph file that doesn't contain tabs (\t) and doesn't start with an i will get an i automatically prefixed, turning it into a gopher information item.

Any .gph file that is marked executable with be run as if it were a shell script and its output will be sent to the client. CGI-BIN is back, baby.

For example:

$ cat echo.gph
#!/bin/sh
echo "iHi, world!"

Then:

$ gopher-client gopher://localhost/1/echo/
Hi, world!

usage

phd [options] <directory>

phd ./path/to/gopher/root    # Serve directory over port 70.
phd -p 7070 docs             # Serve 'docs' directory on port 7070
phd -h localhost             # Serve cwd using hostname "localhost".

development

cargo run -- ./path/to/gopher/site

resources

todo

  • logo
  • script mode
  • run mode
  • log options
  • 404 message