README.md

gee - gopher environment editor (Beta Test Version)
copyright (c) Bill Middleton, 1993 - all rights reserved
wjm@feenix.metronet.com
Absolutely No Warranty expressed or implied. Use with care.
Send comments, suggestions, and fixes to me please.


What is gee?
Gee is a tool for gopher admins to allow quick and easy inspection of, and
changes to, the gopher archive. It uses a paged display, like the gopher client
itself, and displays files one directory at a time. Gee is compatible
mostly with older gopher servers, but works ok with the gopher+ server's
.name or .link files.

How does it work?
You should probably be uid (your gopher id) to use it, as that'll make
the error checking work a little better, but as long has write perms on
the files and directories in the archive that one attempts to change/add to,
it should be ok.

When it starts, gee ordinarily just cd's to to the toplevel gopher archive
directory and produces a gopher-like listing of all files/dirs therein. This
listing is of the form:

-------------------------------------------------------------------------------
Num Name Type Path Host Port Numb Status
-------------------------------------------------------------------------------
[items]
.
.
[last item]
cwd: /toplevel/current/dir h for help >

-------------------------------------------------------------------------------

With the fields defined like this:

Num - gee selection number
Name - filename (default), or .cap name or .link/.name Name, if it exists
Type - Text, Not Text, Dir, or .cap/.link/.name Type, if it exists
Path - path, or local filename if Path matches in in .cap/.link/.name
Host - localhost or .cap/.link/.name Host, if it exists
Port - port (default 70) or .cap/.link/.name Port, if it exists
Numb - not listed unless it exists in .cap/.link/.name
Status - results from rudimentary error checks on the items


There's an option to use a list of all directories in the archive,
to allow startup in any directory. This list also makes moving files
from one location to any other in the archive very easy, more about it
later. Once the screen is displayed, there are a several options you
can take by entering a single character or a number, followed by a <CR>.
They are:

number - view stat and .cap/.link/.name info for file.
This option displays a window with the stat info from the
file/dir/symlink, including whether it is world readable,
owner and group, and an error condition if not readable
by euid. Or when dir is not scannabale by euid.

c - change to a sub-directory to the current directory,
or change to any other directory, by using the (optional)
directory listing.

u - change to parent directory

f,b,q - forward screen, back screen, or quit

!command - execute command in current directory



After choosing an item to view the stat/display info for, there
are more options for action on the item itself. They are as follows:


e - change/create displayed info for any item via .cap/file or .link/.name
Overwrite the current .cap file, or edit the current .cap
file or .link/.name file pertaining to the file. Or, create
displayed info for any item via .cap/file or .link or .name
You can even convert .cap files to .name entries.

v - view/edit item with pager/editor
The configurable pager, overridden by $ENV{'PAGER'} is used
to view a file. This option is given when viewing displayed
info for the file/dir, as well as when changing/creating
displayed info for it.

m - mv, cp, or ln an item to any dir in the archive

d - rm any file in the current directory
Deletes the selected file. Use with caution.

Anytime a change is made to the displayed information for a file,
an attemt is made to remove the .cache file in the current directory.
A new one is not created yet, but will be in a future release. Once
it's decided exactly how it should be done... :)


What is the optional directory listing?
The directory listing of the archive is created by using another
included program, called getdirs. It starts a find in the configured
toplevel, and creates a text file with the directory paths
from the toplevel. The program is configurable to exclude certain
directories, like .cap and .index.


What to do now?
Assuming you have obtained both the programs and this README,
you'll also need my simple ansi screen window library, win.pl.
It is also available here on feenix, under the perl archive. Then its
easy. Just configure the scripts, gee and getdirs, by editing the
configure sections, then start saving time and effort. And dont
forget to send me comments, bugs, and fixes.


Bill





Where is gee?
Gee is available here on feenix in the perl scripts archive for gopher
retrievals. One can also use the gopher mailserver to obtain it, by sending
mail to perl-info@feenix.metronet.com with the one-line body: (no subject)

send /scripts/gopher/tools/gee/gee.shar

Please remember this is the first version. It still
needs commentary, and improvements. Send me suggestions.