home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of A1200
/
World_Of_A1200.iso
/
programs
/
disk
/
directory
/
dopuslharexx
/
docs
/
dopuslharexx.doc
next >
Wrap
Text File
|
1995-02-27
|
19KB
|
606 lines
DOpusLhARexx Documentation
Documentation for DOpusLhARexx 40.1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Date: January 3, 1994
© 1994 Nirvana Software
Author: Geoff Seeley
Overview
- About the archive.
Copyrights
- Important information.
Acknowledgments
- Who made it possible.
Installation
- Setting up on your system.
Known Bugs
- What doesn't work
Program History
- What was done to fix the above :-)
ToDos
- What I would like to do
Preface
Preface
~~~~~~~
I finally got around to purchasing a copy of Directory Opus recently,
I'm just sorry I didn't do it sooner.
Anyway, the files contained in this archive are a direct result of my
"seeing what this baby can do" and hacking around with DOpus. I
noticed that a few people on the InterNet were impressed with the ability
of certain other directory utilities that allowed a user to view an LhA
archive like a set of files. So...
DOpusLhARexx is a set of ARexx scripts for Directory Opus that will allow
you to view LhA archive files in a DOpus window and extract/delete/add
one or more files to/from the archive.
The DOpusLhARexx programs were developed and tested using the following
programs. Your mileage may vary with other versions....
LhA v1.38
DOpus v4.11
Copyrights
Copyrights
~~~~~~~~~~
The code within DOpusLhARexx is freely distributable and may not be
sold for profit, however the code remains:
Copyrighted © 1994 (All rights reserved)
by Nirvana Software and Geoff Seeley.
DOpusLhARexx may be included in public domain libraries such as Fred
Fish's "Amiga Freely Redistributable Library" as long as no profit
is made from these programs and no files in the archive are modified
in any way.
DOpusLhARexx may also be included on the AmiNet CD-ROM.
If you *must* make improvements to these programs, please oh please,
either send them to me for inclusion in a future release, or at least
upload them to your nearest AmiNet archive site so that the Amiga
community can benefit and enjoy.
No warrantees are expressed or implied for these programs. Use them at
your own risk.
Directory Opus is copyrighted by Jonathan Potter and sold by
Inovatronics, Inc.
ARexx is a trademark of the Wishful Thinking Developement Corp. and
William S. Hawes.
LhA is copyrighted by Stefan Boberg.
AmigaGuide, Commodore's Installer and Workbench are copyrighted trademarks
of Commodore-Amiga, Inc.
Acknowledgements
Acknowledgements
~~~~~~~~~~~~~~~~
The following people and groups made these programs possible.
Thanks go to:
Jonathan Potter for creating the indispensable Directory Opus program.
Bill Hawes for implementing Rexx for the Amiga, and Commodore for
including it into the OS.
Billy Gates and MicroSoft for creating DOS6, Windows, Word, Excel, etc.
which convince me each and every work day that the Commodore Amiga is
*the* one and *only* platform to program/use...
Installation
Installation
~~~~~~~~~~~~
Sorry, no Commodore Installer script this time. You have to install this
by hand.
The DOpusLhARexx archive contains the following files:
DOpusLhARexx/DOpusLhARexx.readme
DOpusLhARexx/Docs/DOpusLhARexx.guide
DOpusLhARexx/Docs/DOpusLhARexx.doc
DOpusLhARexx/ARexx/ListLhA.rexx
DOpusLhARexx/ARexx/GetSizesLhA.rexx
DOpusLhARexx/ARexx/ExtractFilesLhA.rexx
DOpusLhARexx/ARexx/SelectFilesLhA.rexx
DOpusLhARexx/ARexx/DelFilesLhA.rexx
DOpusLhARexx/ARexx/AddFilesLhA.rexx
DOpusLhARexx/ARexx/RestoreLhADir.rexx
I would suggest that you create a subdirectory in DOpus: called "ARexx"
and place the *.rexx files in this directory. Alternatively, you can
place them into REXX: or even S:
Load up DOpus and go into the configuration editor.
Select the "Buttons" editor.
Create six new buttons with the following characterisics:
Name Cmd Type Command
~~~~ ~~~~~~~~ ~~~~~~~
ListLhA
ARexx DOpus:ARexx/ListLhA.rexx
GetSizesLhA
ARexx DOpus:ARexx/GetSizesLhA.rexx
ExtLhaFiles
ARexx DOpus:ARexx/ExtractFilesLhA.rexx
SelectFilesLhA
ARexx DOpus:ARexx/SelectFilesLhA.rexx
DelFilesLhA
ARexx DOpus:ARexx/DelFilesLhA.rexx
AddFilesLhA
ARexx DOpus:ARexx/AddFilesLhA.rexx
RestoreLhADir
ARexx DOpus:ARexx/RestoreLhADir.rexx
All of these buttons should have no flags set and the default stack,
priority and close delay values. (Consult the DOpus manual under the
section "3.5 BUTTONS/EDITOR" if you don't understand what the above
means)
Fire up your favorite text editor and modify the *.rexx files listed
above to conform to your system setup. You will only need to modify
a few variables near the top of each file in the "configuration
variables section.
ListLhA
ListLhA
~~~~~~~
What it does:
~~~~~~~~~~~~~
The ListLhA script allows the user to list an LhA archive in a buffer
window.
How to use it:
~~~~~~~~~~~~~~
Move into the directory containing the LhA archive you wish to list.
Select an LhA file (only the first selected file is looked at)
Click on the "ListLhA" button.
If the selected file is indeed an LhA archive, the buffer window will clear
and the archive will be listed in the window.
GetSizesLhA
GetSizesLhA
~~~~~~~~~~~
What it does:
~~~~~~~~~~~~~
The GetSizesLhA script will do a byte count (total) on the files currently
selected in an LhA archive window. (Much like the DOpus equivalent of
the "GetSizes" button)
How to use it:
~~~~~~~~~~~~~~
Select the file(s) you wish to total in an LhA archive buffer window.
Click on the "GetSizesLhA" button.
You should then see the total byte/file count listed in the status bar.
ExtLhaFiles
ExtLhaFiles
~~~~~~~~~~~
What it does:
~~~~~~~~~~~~~
The ExtLhaFiles script will extract one or more files from an LhA archive
window into the destination window.
How to use it:
~~~~~~~~~~~~~~
Select the file(s) you wish to extract in the LhA archive buffer window.
Click on the "ExtLhaFiles" button.
The script will then extract the selected file(s) to the destination
window while restoring any path(s) stored in the LhA archive.
SelectFilesLhA
SelectFilesLhA
~~~~~~~~~~~~~~
What it does:
~~~~~~~~~~~~~
The SelectFilesLhA script will allow the user to select file(s) in the
archive window via a sub-string search.
How to use it:
~~~~~~~~~~~~~~
Click on the "SelectFilesLhA" button.
A requester will appear asking you for a sub-string to match on. Type in
a string that will match all the files you want to select.
All files with the sub-string as part of their path/filename will be
selected. Additionally, the GetSizesLhA script will be called and
the byte count (total) of the selected files will appear in the status
bar.
NOTE: pattern matching is not implemented (yet) so don't try something
like "*.c". However, if you wish to select ALL files, you CAN
enter "*" in the requester.
DelFilesLhA
DelFilesLhA
~~~~~~~~~~~
What it does:
~~~~~~~~~~~~~
The DelFilesLhA script will delete the selected file(s) from an archive
window.
How to use it:
~~~~~~~~~~~~~~
Select the file(s) you wish to delete from the LhA archive.
Click on the "DelFilesLhA" button.
A confirmation requester will appear giving you the chance to abort the
operation. (Once the files are deleted you CANNOT get them back)
After the files have been deleted from the LhA archive, the buffer
window will be updated by calling the ListLhA script.
If you have deleted ALL the files in the LhA archive, you will be asked
if you wish to delete the LhA archive. Selecting yes will delete the
archive and load the original directory back into the window. If you
choose no, the LhA buffer is left alone and you may add files into the
empty archive via the "AddFilesLhA" button.
AddFilesLhA
AddFilesLhA
~~~~~~~~~~~
What it does:
~~~~~~~~~~~~~
The AddFilesLhA script allows the user to add one or more files to an
LhA archive.
How to use it:
~~~~~~~~~~~~~~
List an LhA archive you want to add files into.
In the destination window, select the files and/or directories you wish
to add into the archive.
Click on the "AddFilesLhA" button.
A requester will appear asking you if you wish to store the pathnames of
the files to be added. Selecting yes will store the paths relative to
the source directory you have listed in the source window. Selecting
no will ignore the paths and store the files into the archive as if they
appeared in one directory.
A second requester will then appear asking you if you wish to add any
possible sub-directories. If you have selected a directory in the
source window and you say yes to this requester, LhA will also
recursively add any files/directories contained within the directorie(s)
you have selected. Selecting no will only add files contained in the
selected directorie(s) but no sub-directories below that.
NOTE: Adding possible subdirectories automatically stores the full path
names in the archive.
The files will be added to the LhA archive and the buffer window will be
updated by calling the ListLha script.
NOTE: If you click on the "AddFilesLhA" button with no LhA archive listed,
a requester will appear asking you if you wish to create a new
LhA archive. Selecting yes will bring up a second requester asking
you for a filename for the new archive. Enter a filename (with or
without the ".lha" extension, but excluding the path) noteing that the
archive will be created in the in-active directory window. (The path
where the archive is to be created is listed in the requester)
If you have selected one or more files/dirs in the active window,
they will then be added to the new archive.
RestoreLhADir
RestoreLhADir
~~~~~~~~~~~~~
What it does:
~~~~~~~~~~~~~
The RestoreLhADir script will re-read the directory of the current LhA
archive listed into the buffer window.
How to use it:
~~~~~~~~~~~~~~
Click on the "RestoreLhADir" button.
The directory containing the LhA archive will be read into the buffer
window.
Bugs
Known Bugs
~~~~~~~~~~
As far as I know, there are no bugs in these programs. Enforcer was used
during developement and testing. However, as I was the only person testing
the scripts, I imagine there maybe some "features" I overlooked...
If you find a problem, please tell me about it (See
Author
),
and I'll try to fix it ASAP. Please feel free to send in your suggestions
for enhancements as well...
Limitations
~~~~~~~~~~~
DOpus (at this time) only allows file entries of 256 characters. This of
course limits the scripts to LhA archives with pathnames of about 246
characters in length.
LhA has path limits similar to those of DOpus as well.
History
ListLhA.rexx
~~~~~~~~~~~~
40.1 - initial quick hack, only displayed files.
40.2 - found bug, was bitten by ARexx quoting so spaces in file names
screwed up.
- added true file size in display after figuring out problem above.
- added two unselectable total entries for new companion script
GetSizesLhA.rexx.
- improved messages to user showing just what the hell is going on. :-)
40.3 - added check to ignore file comments in archive.
- added check to make sure file entry is less than 256 chars.
(DOpus limit)
40.4 - added code so that DelFilesLhA and AddFilesLhA could call ListLhA
to update the window as it would be tricky for DelFilesLhA and
AddFilesLhA to do this.
40.5 - added code to set the ADDRESS to DOpus if the script was called
from someplace else, namely, DelFilesLhA and AddFilesLhA.
- bug fix. DOpus will only allow 30 characters in the window title,
I was storing the path AND LhA filename in there (which is fine
if your lha files are in a top level directory). To fix this,
I changed the code to store only the LhA filename in the window
title and added some code to store the path to the LhA archive
within the directory window itself. By playing with the display
pens, this entry is "invisible" to the user.
GetSizesLhA.rexx
~~~~~~~~~~~~~~~~
40.1 - initial version.
- tried to mimic DOpus 'GetSizes' button.
40.2 - adjusted index calculations due to new info in the footer of the
directory window.
ExtractFilesLhA.rexx
~~~~~~~~~~~~~~~~~~~~
40.1 - initial hack after playing with AddCustHandler (gave up...
for now at least :-) The problem? Well, AddCustHandler passes
some arguments, but not quite enough info to be able to extract
files from the archive. I could get the information I need from
DOpus itself, however AddCustHandler is 'blocking' DOpus.
(ie. DOpus won't respond to ARexx as it's waiting for the
AddCustHandler script to end/return) If I can find a clean way
of using AddCustHandler for Click-M-Click extraction, I'll update
the archive.
40.2 - added code to allow extracting of all selected files at one time,
instead of having to open a CON:/LhA for each file. Left original
code in there for users who like that method. :-)
- improved messages to user.
- added check to see if there is a valid destination path.
40.3 - added code to set the ADDRESS to DOpus in case DOpus didn't invoke
the script.
40.4 - changed code to get the path to the LhA archive from the directory
window.
40.5 - added TopText call and moved "Busy on" call before requester.
40.6 - bug fixes. added missing quotes and parameters for Status calls.
40.7 - found out that LhA doesn't like certain characters in the file names
it uses to extract. Added function to change these to wildcards.
40.8 - added code to check the other window if no LhA buffer found in
current window.
AddFilesLhA.rexx
~~~~~~~~~~~~~~~~
40.1 - initial version. I said, "What the hell!", might as well be able to
add and delete files from the archive as well as extract them...
40.2 - added code to get the path to the LhA archive from the directory
window.
40.3 - added TopText call and moved "Busy on" call before requester.
40.4 - added code to allow the user to create a new archive.
- added option to recurse subdirectories.
40.5 - found out that LhA doesn't like certain characters in the file names
it uses to add. Added function to change these to wildcards.
40.6 - added code to list a new archive after creation.
DelFilesLhA.rexx
~~~~~~~~~~~~~~~~
40.1 - initial version
40.2 - changed the way DelFilesLhA.rexx called ListLhA.rexx as I was
getting some *very* impressive crashes (continuous yellow screen
upon reboot!) via 'call ListLhA.rexx'.
- moved the code to restore DOpus's requester button text from the
CleanUp function as I don't think it was hitting it.
40.3 - added code to get the path to the LhA archive from the directory
window.
40.4 - added TopText call and moved "Busy on" call before confirmation
requester.
- added code to see if the archive is empty after the delete. If
it is, the user is given the option of deleting the empty archive.
40.5 - added Busy on call after Request as it seems DOpus turns Busy off
after the Request.
40.6 - found out that LhA doesn't like certain characters in the file names
it uses to delete. Added function to change these to wildcards.
- added check to see if the LhA archive is empty to begin with, if
so the user is given the option of deleting it.
40.7 - added code to check the other buffer window if no archive is
detected in the current window.
SelectFilesLhA.rexx
~~~~~~~~~~~~~~~~~~~
40.1 - initial version
40.2 - added code to call GetFileSizesLha.rexx after file selection to
show the totals.
- added ScrollToIndex call so user sees the selection process.
40.3 - added TopText call and moved "Busy on" call before the string
requester.
- added special pattern "*" to select all files
RestoreLhADir.rexx
~~~~~~~~~~~~~~~~~~
40.1 - initial version
40.2 - added code to check the other buffer window as well.
Author
Contacting the Author
~~~~~~~~~~~~~~~~~~~~~
If you have any comments, suggestions, gripes, or God forbid... bugs,
Please feel free to contact me at the following places:
Snail-Mail: Geoff Seeley
1240 Margaret Place,
Duncan, British Columbia
Canada
V9L 4T6
E-Mail: geoff@softwords.bc.ca (InterNet)
ToDos
ToDos
~~~~~
- finish AddCustHandler for click-m-click extraction of files.
- add proper pattern matching to SelectFilesLhA.rexx.
- compile the scripts with the ARexx compiler for speed (Can someone out
there do this please???)
- add support for ZIP, TAR, and other archivers.
- create support functions for DOpus's "AddFile" command (damned thing
wants the time-stamp in seconds!?)
- improve the creation of an archive (maybe make "CreateLhA"?)
- allow operations between archives (ie. list two archives, move files
between them)
- make a DOpus help file for the buttons. (haven't used this feature
yet :-)
- create non-commented versions for speed