README file for tess, tar extraction simplification script. This file documents tess version 2.0. Please send comments, suggestions, bug-reports, etc to pcoad@crl.com Any feedback is welcome! If you use tess please let me know. I want only to track the distribution of tess. User lists will not be sold. No salesmen will call. 1. Legal Stuff: Copyright 1994, Paul E Coad The author disclaims all warranties with regard to this software, including all implied warranties of merchantability and fitness. In no event shall the author be liable for any special, indirect or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortuous action, arising out of or in connection with the use or performance of this software. This package is being released under the terms of Larry Wall's "Artistic license". 2. Files: README this file tess the tar extractor Artistic Larry Wall's "Artistic license" library/ disjoint.tk DISJOINT.TK v1.1 - by Paul Raines fileselect.tcl file select box - by Mario Jorge Silva (modified) tessdlg.tk common dialog routine. tclIndex index file of procedures in the above files 3. General: tess attempts to simplify the extraction of tar archives by providing a graphical interface to the tar command. tess provides for automatic decompression of compressed or gziped archives. Since tess requires tar and compress it may not work under any operating system which is not unix-like. To make use of tess' uncompress facilities the programs zcat and/or gzcat are required. tess is totally based on tcl/tk. There is no c-code and so should be easy to install. 4. Installation: No compilation is required. Extract by typing: zcat tess.2.0.tar.gz | tar oxvf - If you already has tess you would type: tess tess.2.0.tar.gz and select List/Extract -> Extract All. One variable needs to be set, tess_lib, which should be set to the path of the directory containing disjoint.tk, fileselect.tcl, tessdlg.tk, and tclIndex. 5. Use: tess is started from the command line. If an argument is specified, it is used as the Device entry (see below). Like any description of a GUI the following is best used as a reference. IMHO tess is fairly simple to use (few moving parts!) Try it out then look at the docs. Device: (button) opens the Select File window. Selecting a file in the list (double clicking, or pressing the List button ) will list the file in the tess' listbox. See the description of the Select File window below for more details. Device: (entry) enter the name of the device (file) from which to extract the archives. Pressing the Enter key in this field will cause the archive to be listed in the listbox. List/Extract: List Archive: reads the named archive and displays a list of the contents in the listbox. Extract All: extracts all files from the named archive. Extract Selected: extracts the files selected in the listbox. About: shows the legal stuff in a window. Quit: quit. Options: Owner Perms: when set "on" the extracted files take the owner and group ID of the user running the program. Update Mod Time: when set "on" the extracted files will have a modification time of the time of extraction. Select File window: Device: enter the name of the device (file) from which to extract the archives. scrolling list: lists files in the current directory initially, selecting .. or will list the contents of the parent directory in the list, and selecting a directory will list the contents of the selected directory in the list. Double clicking on a file name or selecting a file and pressing the List button will list the contents of the file in the list in the tess window. OK: selecting a file in the list and pressing the OK button will place the full path name of the file in the device entry in the tess window. List: selecting a file in the list and pressing the List button will list the contents of the file in the tess window. Cancel: pressing the cancel button will close the Select File window without changing the contents of the device entry in the tess window. path: the current directory is displayed at the bottom of the Select File window. Defaults for several options can be set within tess: default_device - sets the default value to appear in the Device entry. default_owner_perms - sets the Owner Perms flag. default_update_mod_time - sets the Update Mod Time flag tarlist - sets the name of the temporary file have_gzip - specifies existence of gzip and friends have_gzcat - specifies a non-standard installation of gzip. have_funky_tar - specifies that tar writes everything to stdout. All of the above should need to be set only once so are not changed through menu options or settings. 6. Changes Changes since 1.1 Enhancements: - Disjoint selections of files inside of the archive are now allowed thanks to Paul Raines' DISJOINT.TK v1.1. - The archive file now can be selected (from the Device: button) by means of the fileselect box thanks to Mario Jorge Silva's fileselect.tcl. - Files ending in ".tgz", ".taz", and ".taZ" are now recognized as being zipped/compressed tar files. (This enhancement really requires gzip. If you don't have it, it can be obtained at prep.ai.mit.edu in /pub/gnu.) Bugs: - One portability problem has been fixed. At least one version of tar writes everything to stderr, a redirector was added to cover this. If you have this kind of tar, set the variable have_funky_tar to 1. Nits: - Windows are automatically resized to display the longest line in the list. - Some typos in tess and the README file have been fixed. - Moved tessdlg to the library so it can be used elsewhere. Changes since 1.0 - Added options in the code for setting the defaults on the Options menu. - Removed the zcat is gzcat option from the options menu and added a configuration option to specify non-standard gzip installations. - Fixed 2 bugs related to extracting a subset of files. - Changed the list boxes to have fixed size fonts. - Added an "About" window to show legal stuff. 7. To Do: tess attempts to provide a simple interface to the tar command, and so does not deal with the less used options of the tar command. tess does not even deal with creating an archive. (I have been thinking about this though... drag-n-drop from a file manager?) Things to do: * Replace fileselect or modify it further so that directories are visibly different from files. Now they all look the same. (See below.) * Add a good way of changing the working directory. (This could have been done with fileselect but tess needs something different (I am not knocking fileselect, it has saved me much work! :-)) * Add support for GNU tar. * Document more of the code. * Add support for drag and drop, busy, and bgexec and other cool BLT stuff. * Find ways to minimize the annoyances listed below. 8. Annoyances: * On SVR3.2 systems with short (14 character) file names, tar does not properly extract files with long file names when it is extracting from stdin. This may be true on other systems. * On my system occasionally the message "child killed: write on pipe with no readers" is displayed. All of the files are listed and can be extracted but the annoying message is displayed. Related to this when tar files contain archived directories (e.g. src/, src/port/, src/port/sun) an error dialog is displayed stating that the directories can't be created. I think this is a problem when the tar file was created on a BSD system and is being read on a (old?) SYSV system. The messages are annoying but in most cases can be ignored. 9. Bug reports and suggestions: pcoad@crl.com 10. Thanks: Dr. John Ousterhout and the UCB for such a fun free language/toolkit. My wife for her saintly patience. Harold A Pagenkopf, for a lifetime of inspiration. All of those who sent me bug reports, suggestions, and code including: John Harres, Jens Henrik Jensen, Dimitry Kloper, and Pat Niemeyer.