GitHub - arcfide/goscher: Pure Scheme Gopher Server (original) (raw)
Goscher: A Scheme Gopher Server
===============================
Author: Aaron W. Hsu
"Yeah, but is it Goscher?" - Peter Danenberg
Copyright (c) 2010
Licensed under the ISC License.
OVERVIEW
Goscher is a lean Scheme Gopher server currently designed to be run under inetd or as a standalone server. It supports a clean, minimal set of features for hosting Gopher repositories.
FEATURES
Currently Gopher only supports the display of files in a set hierarchy with custom descriptions and user-specified extension to file-type mappings.
INSTALLATION
See the INSTALL file.
RUNNING
Simply make sure that you run goscher as follows:
goscher [options] [config-file]
Options:
-q This will make goscher work in quiet mode.
The config-file can be left out and the default will be used, or you can specify a particular configuration file.
CONFIGURATION
First make sure that /etc/goscher/goscher.conf matches the example, and that the host name is correct, or specify a different path to the configuration file in the command line.
Goscher currently expects to find its data directory in /var/goscher and its configuration in /etc/goscher. You can change this by editing the configuration file. Right now the only supported goscher support files are extensions.X files which specify the extensions that map to file types. Each extensions file maps a list of extensions to the file type 'X' which is the last part of the file name, and should be only one letter or digit. The extensions are listed one extension per line.
In every directory of the data directory, there can be a +INDEX file, which specifies the properties associated with every file in that directory. It is formatted as a Scheme S-Expression Association list.
(("filename" (property . value) ...)
...)
The currently supported properties are:
name Description of file displayed on the entry.
type Type of the file in Gopher Terms.
It is possible to tweak the configuration and location of the files, but if you change the location of goscher.conf, you must pass this file explicitly to the goscher program on launch as the first argument.
LOG FILE
You must provide a log file in the configuration file, or Goscher will use the default. At the moment there is no support for not having a log file.
SPECIAL FILES
Other than +INDEX, there are also special files that you can create which allow you to do things in Goscher.
GOPHER LINKS (file@):
These files contain pair based association lists in Scheme
format which allows you to access foreigh gopher servers.
They are expected to have at least five attribute:
name Printed Name of the entry
selector The path on the remote server
server Remote host name
port Remote port name
type Document type in gopher form
A sample entry would be:
((name . "Floodgap Server")
(server . "gopher.floodgap.com")
(port . 70)
(selector . "")
(type . 1))