home *** CD-ROM | disk | FTP | other *** search
-
- dP .8888b
- 88 88 "
- .d888b88 .d8888b. .d8888b. 88aaa
- 88' `88 88ooood8 88' `88 88
- 88. .88 88. ... 88. .88 88
- `88888P8 `88888P' `88888P8 dP
-
-
- DEAF - Description Extracting And Filenoting
- (AmiNet oriented)
-
- By Manuel Giorgini (mgiorgin@dsi.unive.it) in 1996
-
-
- *** Disclaimer
-
- Briefly: (1) this program comes with no warranty.
- (2) if your HD burns (or stuff like that), I won't accept
- any responsibility.
- (3) I can only guarantee that this program will occupy disk space
- and (maybe) some memory.
-
- This program is CryWare. That is, if you like it and you decide it's worth
- being used, you're morally obliged to open the window and speak aloud what
- you think about it, in a language of your choice ;)
-
- And BTW if you leave me an EMail with your comments/bugreports/threats/thanks
- or whatever, I'll send you the complete sourcecode in Amiga E (it's so
- easy to write down it. But maybe it can still be useful to someone, just
- to laugh sometimes, or to have something to read in the bathroom :)
-
- My address is mgiorgin@dsi.unive.it
-
-
-
- *** Prologue
-
- First of all: Sorry for my bad command of english language.
-
- Hi!
-
- I run a BBS, and as many other sysops, I like to collect files and put them
- at my users' disposal. Recently (well, not so recently :) I started
- leeching megabytes over megabytes of stuff from the AmiNet sites, and moved
- all my downloads into my file areas. Soon I started getting bored of
- typing all the filenotes by hand, and after having looked (with no result)
- for a fitting utility, I worked on my own. Thus, DEAF was born.
-
-
- *** What is this program for?
-
- DEAF will scan an archive, extract the description from INSIDE it, and link
- it as a comment for that file. Suppose you have downloaded "foo.lha" and
- you have noticed that it contains "foo.readme": DEAF will EXTRACT the
- "Short:" line from foo.readme (or whatever line else) and will put it as a
- filenote on "foo.lha" (without the trailing "Short:" and blanks).
-
- DEAF will then be able to move that archive in your personal
- aminet-organized mirror (if you have any), and will take care of discarding
- obsolete versions.
-
- DEAF will recognize LHA, LZX and ZIP archives, and will operate
- successfully with all of them, provided you have LhA, LZX and UnZip in your
- path (this is extremely important!); evaluation versions are OK too if you
- are not using LZX. DEAF by now needs a registered LZX to work, unless when
- moving archives and/or taking filenote informations from the external
- .readme file.
-
- From v1.02 on, DEAF will use the Shell Copy and Delete commands to
- accomplish its new features, so you may have to put them in your path too.
-
- Maybe such an utility is already existing, but I hadn't been able to find
- it. I found an utility similar to what DEAF was in its v1.01, but it
- required the .readme file to be already unarchived and in the same
- directory as the archive file, and this is rather annoying for people not
- used to download readme files along with the archives. The .readme file
- could then be nested into subdirectories in the archive structure, so a
- manual extraction might be very unhandy and, even worse, difficult to code
- in a script.
-
- Anyway, upon demand I succeeded in letting DEAF check for those kind of
- readme files. So if, say, you have "foo.lha" AND "foo.readme" in the same
- directory, when "foo.lha" does NOT contain "foo.readme", deaf will
- automatically look for the so-called 'external' readme file. This file
- will then be moved along with the archive, or deleted if you tell deaf to
- do so. It is to say that the archive itself won't be touched (besides when
- being moved); these operations will regard the unarchived readme files ONLY
- (f.i. those kind of files you get when downloading stuff with an ADT
- client).
-
-
-
- *** A note for AmiNet Uploaders
-
- Please, add the .readme file into your archives too! Otherwise, my program
- would become half useless :)
-
-
-
- *** Syntax
-
- This program works via CLI/Shell only. Nevertheless, it has been developed
- for script purposes.
-
- The command line has changed a bit from v1.01. Remember to update your
- scripts (if you DID use deaf in your scripts, let me know! i'd be
- enthusiast ;).
-
- 1.Work:> deaf ?
- FILE/M/A,DP=DESCPAT/K,KW=KEYWORD/K,TF=TEMPFILE/K,TD=TODIR/K,RP=REPLACES/S,
- DM=DONTMOVE/S,DC=DONTCREATE/S,DR=DELREADME/S,SF=SAFENOTE/S,FB=FALLBACK/S,
- Q=QUIET/S:
-
- Where:
-
- FILE - Specifies the Archived (LhA, LZX, ZIP) file(s) you'd like to
- comment. Wildcards are allowed.
- DEAF will automatically recognize the compression type basing on
- the file(s) extension and launch the appropriate command.
-
- DESCPAT - is the descriptor file pattern.
- (default: '*[archivebasename].readme', that is, '*deaf106.readme'
- for 'deaf106.lha')
- This is mainly intended for people using deaf on non-AmiNet
- archives.
- Please take a look to the FALLBACK chapter.
- This setting overrides the FALLBACK flag.
-
- KEYWORD - is the word (or part of) immediately previous to the description
- string (default: 'Short'). No wildcards allowed.
- The colon sign (':') will be skipped along with the blanks, so you
- shouldn't add it to the keyword. You can do it anyway but then deaf
- won't recognize a header such as 'Short : program blah blah',
- that is, with a random number of blanks before the colon sign.
- Search is CASE SENSITIVE, therefore pay attention.
- When more than one string is matched, DEAF will get the first
- only.
- BTW, you can insert "Author:" or "Uploader:" here; guess what it
- would produce... :)
-
- TEMPFILE - Is the temporaneous workfile for DEAF. It will be (hopefully!)
- deleted during the operation, so you can definitely forget about
- it. (default: 'ram:deaf_temp')
-
- TODIR - Specifies a root path for an aminet-like partition to store that
- file in.
- Example: suppose your readme file contains:
- Type: comm/misc
- and you specify "dh0:aminet" ('/' is facultative) as path; then
- your file will then be *moved* (that is, copied and deleted) to
- "dh0:aminet/comm/misc/". (see DONTMOVE)
- Every absent directory will be created, in order.
- Eg. in the case above, deaf would check for "dh0:aminet/comm"
- first, creating it if needed, then it would do the same for
- "dh0:aminet/comm/misc". (see DONTCREATE)
- The 'Copy' and 'Delete' commands *must* be in your path.
- This feature affects any 'external' readme file too, if present.
-
- REPLACES - If selected, and a TODIR path is given, deaf will look for a
- string like this in the readme:
- Replaces: comm/misc/oldstuff_v1*
- and will issue a delete command with a path composed by TODIR
- and "comm/misc/oldstuff_v1*", actually deleting your files
- *forever* (until recovered w/ QBTools or similar :).
- This command, having a wildcard, obviously affects any .readme
- file present in the directory.
-
- DONTMOVE - If selected, original copies of files moved by TODIR won't be
- deleted. This has been put for your safe. :)
- This switch affects any 'external' readme file too, if present.
-
- DONTCREATE - If selected, and a TODIR path is given, deaf will *not* create
- any directory it does not find. If it actually happens, deaf will
- just stop operations at all.
-
- DELREADME - If selected, DEAF will delete the "external" readme file, if
- present.
- Normally that file would follow the related archive: moved, or
- just copied, if a TODIR path is given; left where it is, otherwise.
- With this switch, you force deaf to delete it, right
- after having operated on your archive.
-
- SAFENOTE - If selected, and your file is already commented, DEAF will leave
- it untouched.
-
- FALLBACK - Most archives on AmiNet now have their related .readme file inside
- themselves too. But sometimes the name won't match (f.i. you
- download 'foo_v104.readme' and it contains 'foo.readme').
- Therefore I added this flag to make deaf automatically fallback
- to a more generic '*.readme' descpat, when you didn't specify a
- specific one. (see DESCPAT)
- The reason why I didn't make it the default, is that some large
- packages have more than a single readme file, and since DEAF just
- looks the first only, you may have that archive moved to a directory
- which it does not belong to. Anyway in most cases it will work.
-
- QUIET - Will avoid any message printing; DEAF will anyway still return an
- error code. Obviously there could still be a message printed, that
- is the error relative to an eventual ReadArgs() failure :)
-
-
- *** Example
-
- If you have DEAF in your path, try this:
-
- 1.Work:> deaf Work:comms/downloads/#?.??? SF QUIET
-
- voila!
-
- For a quick check, try deaf with its very archive:
-
- 1.Work:> deaf <path>deaf106.lha
-
- If you have an aminet-like organization in one of your HD's, try with
-
- 1.Work:> deaf <path>deaf106.lha TODIR dh1:archives/aminet REPLACES
-
- I myself have added this line to s:shell-startup:
-
- ________O/________O/________O/________O/________O/________
- O\ O\ O\ O\ O\
-
- Alias df "deaf [] TODIR dh1:aminet REPLACES"
-
- ________O/________O/________O/________O/________O/________
- O\ O\ O\ O\ O\
-
- Now I can do
-
- 1.Work:> df amitcp:ibrowse/downloads/*.lha
-
- Without the hell of typing tons of times the same commands.
-
-
-
- *** History
-
- v1.00 [15.02.96] - First version
-
- v1.01 [28.02.96] - stuff (trust me, this version is better, it's just that
- I can't explain efficiently in English what I have done :)
-
- v1.02 [21.06.96] - Introduced TODIR, REPLACES, DONTMOVE, and lightly improved
- in other small parts.
-
- v1.03 [01.07.96] - Now DEAF creates the needed directories (unless specified).
- DONTCREATE introduced.
-
- v1.04 [10.07.96] - DEAF now looks for an external .readme file too, when none
- are matched inside the archive.
- The source file has been lightly optimized.
- Fixed a bug in the REPLACEment feature.
-
- v1.05 [20.07.96] - Fixed a SERIOUS bug. Trash v1.04, don't trust it anymore!
- Fixed another bug in the REPLACEment feature.
- Now DEAF will optionally leave untouched a present filenote
- (just moves the file around).
-
- v1.06 [25.07.96] - I added pattern matching, thus reorganizing the whole source.
- Now deaf, when looking inside the archive, tries to find
- a readme file with the same archive base name.
- Then, it will optionally fall back to *.readme, unless a
- specific descriptor pattern is given.
- Now deaf can resolve 'Short' lines with any number of blanks
- before the colon (':') sign.
-
-
-
- *** Future versions
-
- Tell me! You ask, We consider, I add. :)
-
- Would anybody like a zzzreadlast.displayme add-to-archive feature?
-
-
-
- *** Credits
-
- Somebody helped me in developing DEAF, with suggestions and moral support.
-
- They are:
-
- Ron Burman,
- Gerard Sweeney,
- Christian Ruetgers (who suggested the main improvements for v1.02 and v1.04),
- Rob Saxby,
- Ville Ranki (suggestions for v1.05),
- Roland De Herder (suggestions for v1.06),
- Mark Sorensen (v1.06).
-
- Anyway there is still someone else I'd like to mention:
-
- Roberto Bizzarri, for he added DEAF into his McFiler distribution
- [if you are looking for a good disk cataloguer, try McFiler v4.1a!
- available on biz/dbase],
-
- Gabriele Zaverio, Giuseppe Chillemi, and the whole FreakNet network;
- Claudio Mazzuco, Guido Vaccari, Lorenzo Belloni and all my points;
- Peter Van Den Broeck, for his friendship;
- The Smashing Pumpkins band, for their great music [it helped me indeed :)],
- The EFF, for his fight for the freedom of speech and privacy in the 'Net;
- James McOrmond, for his program JamMail (lightyears beyond TrapDoor!), and
- Johan Billing, for CrashMail. Smart and strong. Good tosser. Take it. :)
-
- EOF
-