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