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))