What is the MKCACHE program?
============================

The MKCACHE program is a simple compiler.  Is converts a text file
describing a gopher menu into a cache file that can be served
directly to a gopher client.

When you run MKCACHE, it looks for a file called "MENU" in the
current directory.  It processes this file line by line and creates
the file "CACHE", also in the current directory.  Once the cache
file is created, the menu file is no longer used (except when you
want to alter the menu in some way).  When a gopher client requests
the menu for the current directory, it will be the cache file
that is actually sent, byte for byte.

For each menu in your gopher tree, you will need a separate MENU
file.  It's handy if you place the MKCACHE.EXE file in a directory
that is on your path.


How do you create MENU files?
=============================

Here is a sample MENU file:


# This is a COMMENT.  It will be completely ignored by the
# MKCACHE program.

# Here is an example of a menu item that points to a text file:

name = Welcome to my gopher server!
path = 0\welcome.txt
type = 0
host = myhost.com
port = 70

# Here is another one.  Note that the 'type' setting is left out
# in this example.  It will get it's value from the first character
# of the 'path' setting if not explicitly set.  Also note that the
# 'port' setting defaults to 70 if left out.

name = Information about my gopher server
path = 0\info.txt
host = myhost.com

# Here is a pointer to a subdirectory.  There must be a DOS
# directory called "docs" off of the GS root directory and it
# must contain its own CACHE file for this link to work.

name = Local Documents
path = 1\docs
host = myhost.com

# Here is a simple way of creating an info item (type 'i').  Type
# 'i' items cannot be selected by a user, they are simply for info
# purposes.  In this case, I'm using it to separate two areas of
# my menu (so it doesn't look quite as cluttered).

: ---------------------------------------

# This menu item points to another gopher server's root menu.  The
# key here is to leave the 'path' empty.  In this case, the 'type'
# setting will default to type '0'.

name = Camosun College's Gopher Server
path =
host = gopher.camosun.bc.ca
port = 70

# Here is another way of generating a type 'i' item.

name = --------------------------------------
type = i

# Here is a menu item that will telnet a user to my BBS:

name = Telnet to Island Net
path =
type = 8
host = islandnet.com
port = 23


Pretty simple huh?  Here's a list of the basic 'type's:

0       Text file
1       Directory (another menu)
2       CSO
3       Error message (not really used)
4       HQX file (Mac stuff)
5       DOS Binary file
6       UUEncoded file
7       Searchable index
8       Telnet
9       Generic binary file
g       GIF file
I       Generic image file
T       TN3072
i       Informational

