═══ 1. About TarGzipPM ═══ TarGzipPm Version 2.4 (ORexx Pre Release Version Beta 4) 2/02/1999 Welcome to TarGzipPm Version 2.4 Fast off the heels of 2.3. Basically after uploading 2.01, I found a couple of bugs, plus some ways of both decreasing the code and add enhancements, which related to the viewing of files in the list box. I had discovered that some directories (I think with EA's) would not have a trailing '/', therefore if was difficult to determine if it was a file or directory. So I produced a pop-up message about this, how ever, I soon got fed up with it.... This is not Windows(tm), though I solved the problem MiscroSoft fashion by adding extra code, so you could disable this warning, but in 201, it's not working. My solution now is as follows. Scrap the Warning Box, (and code) and instead check the file using the list option in Tar, If the file to view does not have a trailing '/' it is passed to tar, and a temp list is created, if it has more than one items, its a directory....and you get a quite warning at the button of the main dialog. if not it's a file, and it is un-packed and opened, simple really This is the Fourth stage in translating TarGzipPm to Object Rexx, and like 1.6 with an OS/2 inf file (your reading it!) While this is still a beta release, it is now a lot more stable than prior releases. This release also add a lot of new features, it is a substantial upgrade over 2.0 and with the use of Object Rexx, I have been able to reduce the amount of new codes needed! While I have spent longer testing and debuging this version, than ever before....if I have missed any bugs, please let me know! though see know problems first, please) This Program is a near the end of Beta testing, and will go "Gold" next release. It is Emailware, and hence free, all you have to do is to email me and say that you are using it. The coding however is still copywrited and remains the property of Virtual Publications. This version is an interim step to The "Object Rexx" version, and contains several new features. I have released it because I have had several requests for these new features. While most of the code is still written in Classic Rexx, some code in this version a substantial part has been Converted to Object Rexx. Though the main port will occur after my next project is completed. I have decided to try and develop a Class and method generator/browser for DrDialog (though it should also work with other Rexx Gui environment. and will also include core class/methods for common tasks, such as for generating Directory listings....open files and much more, creating Arrays.... lists.. bags, variables etc see my site for more info.........coming soon! TarGzipPm.exe was produced Using DrDialog, and compiled (if that's the correct word) with repack.exe Snap shots in this Document where Made with IBM's EWS PmCarera The Flow Dialogs of the Directory Listing was produced on Star Office's Draw program CAUTION: Please note that no resoncibility can be taken for adverse affect which this software might cause to your system Though having said that, most of the work is done on copies of the file, except for the initial test, to ensure that it is in the current format, Zip files are passed to unzip to test, the rest go to gzip to test, except for tar files. So in reality little damage can be done to your Archive Files These set of Document will guide you through the use of TarGzipPm including: ═══ 1.1. System Requirements ═══ System Requirements  OS/2 version Warp +  Object Rexx installed under OS/2  Tar.exe and Gzip.exe and unzip.exe must be on your path  Hpfs partitions for program and temp Directories  16 Megs + The installation program will only run under OS/2Warp +, as I believe will TarGzipPm.exe. The reason being that, as Far as I know, you can only install Object Rexx under OS/2 Warp. Also, some of the Rexx coding requires some of the newer features added with Warp? If you have Warp Version 3, you will need to install Object Rexx. Also enseure that it is the default Rexx interpreter Rexx is generally installed with Warp, unless you deselected it during installation. If you did, you can install it post installation via your selective install icon, in the OS/2 System, System setup, install/remove folder (under Warp Four.) Object Rexx If you have not made Object Rexx the Default Rexx interpreter, this is the time to do it. Simply go into your OS/2 Directory and run the file SWITCHRX.CMD, reboot, and then run... WPSINST.CMD, that's it TarGzipPm will only run on HPFS Drives, Both Program and Temporary Directory. The ini file and temporary Directories do not conform to FAT, as often, the content of *.tar.gz files. The Archivers Tar and Gzip must be on the path, (excluding the TarGzipPm Directory - Current Path) this is a must, or else the program will not run. I tend to place all my Archivers in one Directory, which I then add to my Path Statement. See Known problems. ═══ 1.2. What it Does ═══ What is TarGzipPm TarGzipPm is a Front end to 'Tar.exe and Gzip.exe.' (with limited support for zip files) It is, now, basically written in Object Rexx using DrDialog for its Pm bits. So What does it do? TarGzipPm helps you create and un-archive Tar and gzip compressed files, with the Following extension. It will Create *.tar.gz files It will unarchive files in a number of different formats, including those compressed with Gzip, and also Tar with the following extensions 1. example.Tar.gz 2. example_tar.gz 3. example.tgz 4. example.tar 5. example.gz 6. example.Z 7. example_tar.Z 8. example.tar 9. example.zip It also allows the viewing of files Prior to being unarchived either with an editor or through OS/2's WPS Association. This means that if, for example you have a *.cmd file and want to look at its contents, you can do so, without executing it! Since TarGzipPm Works on file formats, TarGzipPm will not work on File formats radically different, than those listed above, if you find a different format please let me know. See Know problems and Future Plans Once set up, You can open as many tar files as you like, as each session work in its own temporary Directory and variable pools. ═══ 1.3. What's New in 2.4 ═══ What's New in Version 2.4 The first Error I found was if you attempted to open a file viewer selected viewer, in side an archive file, and open it with TarGzipPm it would not be able to find it's inifile, as would would not be started from the program Directory, this has been fixed ═══ 1.4. What's New in 2.3 ═══ A few Minor changes to the Dialog, pos-2.02 Some how, don't remember when, but I managed to Break TarGzipPm's ability to unarchive and archive to root, this has been fixed enhanced on the fly hints... Install now saves both the Archive Directory and Editors settings ═══ 1.5. Whats New in Version 2.02 ═══ What's New in Version 2.0 Lots of new tricks in this edition, though sorry, but you will have to have Object Rexx as your Default Rexx interpreter. Now most of the string and I/O manipulation and function, eg substr, stream and lineout function, now use the Object Rexx build in methed (myfile~stream()), as well as '.list' and '.bag' classes. A Tradition Rexx version of TarGzipPm.exe 2.0 will be released shortly...! New In This Version When I first started on this project I decided not to support zip files, partially because I thought that OS/2 was well supported in terms of PM unzip/zip programs (RPF's Zip Control(TM) and Warp Zip are both excellent programs.) However, having discovered that some tar files are then put in a zip file and not gzip, I had a change of mind. TarGzipPm thus, now supports zip files, and if the file contains only one file in its listing, and that is a tar file, it will Automatically list the content of that file, and make it the "open file". Other wise you get a normal listing (to view or unzip) Enhanced, and removed some bugs in the Ability to Selective Archives Files, both different directories, as well as from different Drives. God knows why you would want to do that, but you can anyway, this work via a filter system Note this feature must be turned off to be able to view files. I have also added more error checking of file name, when creating new archive.. TarGzipPm will add a '.tar' if not including, and also delete tailing '.'s. So if you try to create a file myFile. it becomes myFile.Tar Ability to selectively Unarchive Files, by Filename, or by file extension Now supports zip files (Unarchiving only) Changes To Dialogs.... Color coding for Priority of Actions New System for Deleting Temporary Directories New Entry in the ini file of where you keep you *.tar.gz files Extended and improved the way TarGzipPm determines file format, reducing the code by three pages I might add. This does mean that the original files are passed to gzip (first to test (if it is not a uncompressed tar file) to ensure it a valid format, and then to do a linsting, to get the name of the file inside the archive.... this works for zip files as well.) Therefore, TarGzipPm should now be able to recognize files with (LEGAL) extended names eg MyFile.version.01.tar.gz Support Now for the following formats have been added: *.zip file All other variation on the Tar and gzip Type New support for Extended Attributes (See Known Problems) TarGzipPm now decompresses all compressed tar files, before listing their contents, using gzip.exe. This has had a considerable increase in both viewing files and finally unarchiving them. Deletion of Files on Exit has been changed. In version 1.0 to 1.5, TarGzipPm would delete always delete the previously opened file, before opening another file to view. This is no longer the the case. TarGzipPm 1.6, and prior used a pipe, so the directory structure of file would not be created. This helped me (or rather the program) keep a Track on what files are in the temporary Directory. TarGzipPm now uses SysDestroyObject to delete the temporary Directory, Therefore, TarGzipPm no longer needs to delete all files in the Temp Directory prior to deleting the Directory itself. TarGzipPm no longer uses a 'pipe' when unarchiving a file for viewing, and hence respect the path, creating the Directory structure, which speeds up vieing file a little Now all ini file references must be valid else the settings page will open on initialisation New entry in the settings/ini file, is where your Archive files are stored and created. If the directory in the ini file does not point to a valid directory, TarGzipPm will open file dialog will point to the program directory I have also added a "Delete Temp" option in the file menu, to delete your master temporary directory, If you use this while a file is "open", the file will be closed the Master Temporary Directory Deleted, and TarGzipPM reset...... (See know problems) Removed the Delete Temporary option from Settings and ini file, if you do not want to delete you temporary directory on exit use the "fast exit" option, under file. Since you sometime get a listing of directories such as G:/example/example without the tailing '/', this normally occurs when you have the EA option on, I now added a new function to test if it is a file or Directory Most of the "open" and "Save" Dialog point to a specific Directory, if for example you open one file, and then press open again, it will point to the directory where the previous file was located. Changes made to the Dialog, the Directory Dialog now includes folder Bmp's and also made other smaller, removed one Dialog which is no longer needed, and made other changes in the appearance of most Dialogs ═══ 1.6. installation ═══ Installation The install program will only run under Object Rexx. If you have not done so, simply unpack the TarGzipPmXX.zip into the drive which contains your prior version of TarGzipPM, or any drive, if this is your first time install. Please note that the zip file contains a directory structure, if you use PK unzip use the option to respect the path! Once unzipped, Simply run the install.exe program, which will then place a new TarGzippm folder on your desktop and icons etc. Note the installation program does not copy files over, at present. However, it will look for your TarGzipPm.ini file and will update it if needed (versions prior to 1.7) If you have a prior version to 1.5 the install program will try to get the current information from your old ini files and then will delete it, before rebuilding a new file. The reason being is that I have removed some settings from the ini file, and changed the key used in the ini files to resolve some conflicts that seemed to have occurred in previous versions, and added a version number to the ini file One installation is complete, open TarGzipPm, and the setting page will open, if the ini file was changed by the install program, simply press update, to confirm the settings, This is true of this version as well If you do not use the installation program, simply delete the old TarGzipPm ini file and then the setting page will open when you start TarGzipPm. This is also true if you ever have any major problems with the ini file, through I have had no reports about this ═══ 1.7. First time use ═══ First Time Use On the first time you open TarGzipPM, or if you delete your TarGzipPm ini file, you will find that the ini file settings Automaticly open. To fill in the fields you simply press the Bowse buttons and find the particular Directory or application file The directory Listing from the Setting page involve a three step operation Then when finished, press update, note that the update button is disabled until you select a "first Drive' letter. After you have done this you can now use the program, note, you do not need to close TarGzipPm after changing the settings, as the values of the new setting will become current, 'on the fly' Note that I have included a "First Usable Drive" the idea behind this is that if you have a Fat Partition on C:, for example where you do not need TarGzipPm to use, it speeds up, (only a little) the custem Directory Listings It should also help save you from accedentally trying to create a file that does not conform to FAT specification, on that drive. If however, you later convert that Partition to HPFS, or simply change your mind, you can get TarGzipPm to be able to see it again by opening the "Default Setting" in the settings menu... which the reverts to C:, as being the first Viewable Drive\Partition ═══ 1.8. Why I made this Program ═══ Why I Made This Prog Having come to terms with zip files and purchasing RPF's Great PM zip/unzip prog, I found my self with a *.tar.gz file (though these files some times have the Suffix *.Z-see limitations) . After some searching I found that there was GNU programs available to unarchive this type of file... However, unlike a normal zip file *.tar.gz work in two stages. The Tar program basically collects files and joins them into one file.. gzip is a method of compressing, though it can only compress one file, hence the need for tar as well? One of the reasons why I decided to make a front end to to these archives, was due to the nature of the syntax..... (it's not like unzip.exe where you can simply go unzip File.zip, or even drag a zip file onto unzip.exe) you have to specify a number of parameters eg +File Myriad.Tar, for example, or it will complain thus: "tar: can't open tape.out: No such file or directory" need I say more! I started out by producing a simple command Rexx file which got the file to unarchive and the directory and passed it to tar and gzip. I then thought it might be a good idea to give it a PM interface. Since I am new to programming I have found this a useful "learning exercise.....") One of the problems I have found is that unlike zip you not only have a two stage procedure to go though, but also file names that change during the process. When Taring a directory its not that hard.. it is simply a matter of adding the extension to the variable being used, eg Tar +file Filename +Directory SourceSelected TarGzfile =Filename||'.tar'. and the same to add the gz extension. So this is what this program does Tars and Gzips directories(sub-directories), you can specify the directory/sub dir to tar, you can specify what dir to unarchive into. ═══ 2. How to Use it ═══ How to Use it? TarGzipPm has been designed for ease of use. Both in terms of Creating new Tar.gz file, and unpacking file. TarGzipPm uses both standard dialog boxes, such as for opening and saving files, selecting your Editor etc, but also includes custom dialog boxes for selecting directories to archive/unarchive, selecting your temporary directory etc.....This now comes in two state root which looks like this and when you have dome down a Directory level, thus Most operations are duplicated, eg. the Open Button and Open pull down menu under "File.". TarGzipPm now allows you to unarchive selected files. There appears to be a bug in DrDialog when having multiple section enabled. To get over this, TarGzipPm now has two check boxes "Select files" and "Select Filters". You can only tick one of these at a time (The other one is automatically disabled on selection) and the view function is also disabled, you can no longer double click on an item in the list box to view the item Now when you select an item in the list box, the item will be deleted and placed in a .bag class, to be used later when unarchiving the file to its final directory. Though if you change your mind simply un-check the check box and the original list will be reconstructed. If on exit the program was unable to delete, a temporary file or directory, you will get an error message, telling you so.... Simply dismiss the window and press exit again to close the program The new color coding works like this.... Red Text on Yellow... generally meany An action will be performed and cannot be halted until completed eg opening a file Green on Yellow.... Opens another Dialog, which you can cancel Black on Yellow... close a window Yellow on Red exit Please not much of the "feedback is now desplayed at the bottom Right hand side of the main window ═══ 2.1. Unarchiving Files ═══ Unarchiving Files You can open more than one TarGzipPm session at a time, and as it uses it's own temporary directories, and all variable are local to each session. There are basically two ways to Launch TarGzipPM. 1. From File open (open Button) 2. From an associated Data Object (File) Though be careful not to open the Tar files in the temp directory, or you will get a "No file to Open" Warning, as it will have been deleted prior to opening the next file, or at least it should be! OK Opening Files.. Press the Open Button and select the file to unachive (or use the open in the file menu). Which basically bring a standard OS/2 File Dialog box up. After selecting the file and pressing OK, Tar Gzip checks that no other file has been opened in that session, and if there was it has cleans up the old directory, before Creating a new temporary directory. When I speak of TarGzipPm opening Files, in reality this means copying the file and passing it to Gzip and Tar. Why, because unlike Zip.exe Gzip actually changes the file itself... test.tar.gz becomes test.tar. It also makes the program safer, it cannot really corrupt a file since it only works on copies.... The file is then copied to the new temp directory and passed to gzip to unarchive... (note that the procedure differs slitly according to file type eg... a *.tar or *.Z file is simply copied and passed to Tar.exe, to list or uncompress and list ) Throughout this you will get progress indication on the top of the main window... Copying file, uncompressing file, initiating list, and building list etc.... You can now view the contents of the list or unarchive the file into a new or existing directory. To view a file in the list simply double click on it, or use the editor button... this is useful for viewing *.cmd files which you do not want to execute....In this version it is now possible to unarchive, only the files (or files by filter) you want to Unarchive, simply select the select file or select filter check box control. and select the files you want to unarchive.... Note you can either unarchive by files or filter, but not both.... when you select a file in the list box it will be deleted and added to the list.... If you make a mistake simply un-check check box, and the original list will be re-constructed......when you have finished simply press the unarchive button... Note you cannot view files when the select check box is checked.... To unarchive the file simply press on the unarchive button which open a new dialog Press Browse to select the drive or directory, note you do not have to select a directory (you can simply select a drive and press OK, for example to unarchive a file with a directory structure in place), then press OK. You also have the choice of making your own new directories to unarchive into As you can see from the example you will be told if you are trying to make a directory that exists (or file exists with the same name) You will also be warned if the directory name contains illegal characters such as spaces or '/' etc. If you want to make a recursive directories eg.. user\new, make user and press ok, then press newdir again and create new.... Once you have selected the correct location to unarchive into, press OK to start to unarchive the 'open file'. Though is you want to unarchive by the selected file/filters you will need also to select the select on the spin button... Throughout this process, you will get Messages regarding what is going on, and any error messages, via the TarGzipPm Title bar, such as copy file, uncompressing etc. After which you should get a completed message unarchived file to... If any errors occur a mesage box will appear, and tell you what the error was, for example, if the file was corrupt. ═══ 2.2. Creating New Files ═══ Archiving Files Simply press new, which will open the Archive dialog Press Browse to select a directory to Archive, and the same for the name of the file you want to create, note, if you do not select a name the file created will be default.tar.gz in the TarGzipPm program Directory. If you try to create a file which already exists, you will be warned that the old file will be deleted, and the Archive to File Field, text, become white on a black background. Again Like unarchiving you have the option of Archiving full directories, or files/filters of particular directories/drives...... After selecting the file press OK... the file will be created, after which, it will automatically tested, as if you had opened it.... and its contents listed... ═══ 2.3. About Filters ═══ This editions now allows you to create and unarchive files with a new filter system 1. By Filter eg *.html 2. By File Name when creating new files you can select files or extension. note you can not select an individual file and a filter of the same type in the same directory eg G:\home\myfile.html g:\home\*.html and also if the file has no extension the file will be included When unarchiving files it simple a matter of selecting the files from the list box. To activate this feature you need to select one of the check boxes, select filters or select files, unlike the filter system when creating new files, the path for the filters is not included..... if you make a mistake you can reconstruct the original list by deselecting the check box, and the original list will be reconstructed The file is then placed in a .bag class and then passed to the unarchive list box, when called. At this time, the item being selected will be deleted from the list box. Note, duplicate entries will not be allowed ═══ 3. Know Problems ═══ Problems with Check Path Problems with Delete Temp Directory In the past TarGzipPM has had problems in deleting the Temporary files and directories on exit, I have received some report that this does not always work. I have attempted to fix this problem with this release, One problem I found was that after a file was uncompressed, eg MyFile.Tar.gz >MyFile.tar, WPS woould complain that's it could not delete MyFile.Tar.gz, basically because it no longer existed. I solved this problem by creating a "dumby file" of the same name. It seems that the Workplace shell had not cought up with the changes in the directory fast enough. However, if you find TarGzipPm is leaving temporary files or directories, before emailing me, try the following. Open the master Temporary directory, and refresh the window, from the view menu in OS/2 Warp Four, alternatively go to an OS/2 Window and get a listing of the master temp directory... It is sometime a matter of WPS having not refreshed the Temporary Directory after it was deleted! Also note that if TarGzipPm cannot delete a temporary file, it will give you a warning message, if this happens when you are exiting TarGzipPM, simply close the message box, and press exit again to close the application. Though I have added a new function under the "File" menu, to destroy the Master Temp Directory, though please do not use this if you have multiple copies of TarGzipPm open... Also note, if you are in the Temporary Directory in an OS/2 Session, The Deleting of the Temporary directory will fail, and the work place shell will issue a number of wornings..... Directories with spaces Sorry about this one, but TarGzipPM will not work on Directories, or files in Directories, with spaces in the name, I am working on this one, at present, if you try to creat a new Directory with spaces in the file name it will not be allowed ═══ 4. Furture Plans ═══ Future Plans At present, I am working on the following improvement 1. The next release will include multi-language support 2. Checking Disk Space before attempting to copy or unarchive files, and final unarchive directory 3. enable the new directory to be editable.... At the moment you have to select a directory to unarchive into I will try to make this field Editable 4. Add Virus Checking of Files (working on this one) 5. Maybe convert a version to Object Rexx (This is the Second stage) started! If you have any ideas, please email me Thanks to: Kia Evers, Ian and V.Kazimirchik for help and advice, as well as to lots of other people from the Rexx news Group Address http://users.powernet.co.uk/vpub ═══ ═══ How to Contact me You Can Contact me at the following address: Asuri@Vpub.powernet.co.uk My Site Address is: http://users.powernet.co.uk/vpub Any feedback will be most appreciated