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.