home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.wwiv.com
/
ftp.wwiv.com.zip
/
ftp.wwiv.com
/
pub
/
MISC
/
DOITAL11.ZIP
/
DOITALL.DOC
next >
Wrap
Text File
|
1997-08-23
|
22KB
|
434 lines
Type: │ . │ │ │
│ ─┼─ │ │
COPY DOITALL.DOC PRN ┌───┤ ┌───┐ │ │ ┌───┤ │ │
│ │ │ │ │ │ │ │ │ │
to print these docs! └───┘ └───┘ ┴ └─ └───┴ └ └ Version 1.1
WHAT IS DOITALL?
---------------
DOITALL is a Swiss Army Knife file maintenance and bulletin generator for
both Classic and GoldBase QuickBBS systems. Auto-detects GoldBase. And the
best thing -- it requires no config files of its own. It reads QuickBBS's
config files instead, and will search for them using the QUICK environment
variable if it can't find them in the current directory.
o Sorts your file listings alphabetically.
o Checks for missing files and orphans.
o Creates allfiles listings (ANSI or ASCII).
o Creates "best user" bulletins (ANSI or ASCII).
o Prunes long log files by number of lines.
o Creates a user birthday bulletin (ANSI or ASCII).
o Can be run as a DOOR to alter user flags and security!
o FREEWARE!
REALLY? TELL ME MORE!
--------------------
I started work on DOITALL because I grew fed up with having a bunch of
utilities (each with its own config file) to clean up my files listings,
create an allfiles list, generate caller bulletins, etc. Even though I've
found a freeware utility or two that will do some of this, it became a
real pain to maintain all of those config files.
DOITALL is different. It reads the QUICKBBS CONFIG FILES instead, and thus
requires none of its own. The main idea behind DOITALL is to eliminate a
bunch of utilities, combining them into a single program that can perform
most of the tasks without proliferating files in your main BBS directory.
All DOITALL has is a single executable, and all options are controlled by
command line switches. You will not be able to create your own ANSI header
for your allfiles list (for example)...however, you should be pleased with
a BBS directory that is free of extraneous configuration garbage that you
have to update (and possibly screw up) every time you change anything. I
saved TWELVE files in my QuickBBS directory when DOITALL was completed.
HOW TO USE DOITALL
------------------
For convenience sake, each function of DOITALL is discussed below. Keep in
mind, though, that you can do everything at once if you want to, and don't
have to repeatedly call DOITALL. Just stick everything on one command line.
Be sure to avoid any hyphens or slashes on the command line to identify the
switches -- they are not necessary and that function won't run if you do.
File Area Maintenance
---------------------
Remember QFILES? This utility sorts your file area listings, finds orphan
files and prompts you for a file description, and finds missing files and
asks you if you want to remove them from FILES.BBS. However, it requires
a FLSEARCH.CTL to figure out where your file areas are. And you have to
specify how many header lines in the FILES.BBS that should be ignored (and
the system name, etc). In total, there were three (count 'em) config files
and the executable which were necessary for it to do its job. Last I heard,
QFILES registration was $10.
DOITALL does all of this, figures out how many header lines to ignore by
itself, gets the file areas from FILECFG.DAT, and system information from
QUICKCFG.DAT. Also, it does not require all the listings to be named
FILES.BBS or to be located in the same directory as the files themselves
-- whatever is in your FILECFG.DAT goes. Works great with CD-ROMs.
S SORTS every file area's files list. Entries are sorted in alpha-
betical order. Header lines (any empty line or a line that begins
with a space) are retained. Blank lines found in the body of the
files listing are stripped from the file. Multiple-line file
listings are supported. Good for your nightly BBS maintenance,
especially on areas that get a lot of upload activity.
DOITALL will read your FILECFG.DAT to find these files. If a user
has one of the files open, DOITALL should skip it...however, I
wouldn't get into the habit of doing this. Your FILES.BBS files
(whatever you call them) are written in place: DO NOT INTERRUPT
OPERATION of the program or you may lose some of your listings.
Example: DOITALL S
F[name] Check for orphaned and missing FILES. "Orphan" files are present
[AUTO] in the download directory, but not in the file listing. "Missing"
files are in the listing but not in the directory. This option
essentially "fixes" your files listings and directory entries so
they match up. Place the "name" parameter immediately after the
'F' to ignore any particular file name when doing the orphan file
scan. If the "name" is ommitted, all files will be flagged.
Example: DOITALL FFILES.BBS
DOITALL first looks for missing files. For each one found, you'll
be asked if you want to delete the entry from the listing. If you
don't, the file will be listed as OFFLINE when displayed by
QuickBBS.
DOITALL then checks for orphans. For each one found, DOITALL asks
if you want to delete the file, skip it (i.e. do nothing), or add
a description to the listing. You can add as many lines of text as
will fit into memory. The description line(s) will be appended to
the end of the file and start in column 33 -- which not only looks
weird when viewed with a text editor, but takes more drive space.
Rest assured that it looks fine when QuickBBS displays it. This is
the only way to get QuickBBS to support multi-line listings and
still have all the columns line up nice and neat.
AUTO There is another special use of the "name" parameter. If you place
MODE the word "AUTO" here, all orphan files will be ignored, and all
missing files will be removed from the listing.
Example: DOITALL FAUTO
Thus, you may run this command in your nightly maintenance without
risk of deleting a file you wanted to keep, or having to be around
to type something at the keyboard every time. Make sure AUTO is in
capital letters -- if it isn't, DOITALL will instead ignore all
files named "auto."
During a file listing fix, DOITALL creates a temporary file in the FILES.BBS
directory (DOIT~TMP.$~$) and builds the new listing there. When done,
DOITALL replaces your original file with this temporary one. If your system
crashes during a file fix, you may delete this temporary file and your
original listing will remain usable.
As a User Settings Door
-----------------------
This is a rather unique application of DOITALL. You can run this program as
a type 7 menu item (door) from QuickBBS to change user settings by altering
EXITINFO.BBS. Note that it IS possible to do this already using a series of
autoexecute menus and questionnaire files. However, keep in mind that each
questionnaire takes two more files in your BBS directory, plus an extra
menu. It's a lot easier to just put a DOITALL command line in a type 7 menu.
+Ax This switch is used to "set" a flag. "A" is the flag series, and
"x" the actual flag number. To "turn on" the user's C7 flag, for
example, put something like this on your type 7 "optional data"
line:
C:\QBBS\DOITALL.EXE +C7
I've found that it's usually necessary to put the entire path and
file name (include the EXE extension) to get this to work. To set
ALL the flags, use zero. The following will set all the B flags:
C:\QBBS\DOITALL.EXE +B0
If a flag is already set, the flag-set command leaves it alone.
-Ax As you might imagine, this command will clear (turn off) a user
flag. Usage is exactly the same as the flag-set commands above:
C:\QBBS\DOITALL.EXE -B4
=xxxxx This command is used to change the online user's security level.
"xxxxx" is the new security level, and must be in the range of
0-32000. The following sets the user's security to level 100:
C:\QBBS\DOITALL.EXE =100
SPECIAL NOTE!!!
It's possible to run this DOITALL function from text files. For example,
QuickBBS offers no good "hook" to perform a flag or security change for a
new user based on whether his call is long-distance. But QuickBBS does
display the S-LONGD.ASC/ANS file. You can force QuickBBS to exit and change
a flag setting whenever this file is displayed, by placing a command like
this at the end of the S-LONGD.ASC, S-LONGD.ANS and S-LONGD.RIP files:
^XC:\Q\DOITALL.EXE +D4|
The control-X character looks like an arrow pointing up. If you put this
in the text file, and enable "Allow shell from text files" in the Security
section of QCONFIG, the caller's D4 flag will be set whenever this file is
displayed. You also might want to use this capability for a user whose
name is in the system trashcan, who enters an illegal phone number, who
fails to meet the upload/download ratios or your BBS, or whatever comes to
mind. The text file itself becomes your "hook!" You can do this for just
about ANY door, by the way.
Log File Maintenance
--------------------
P[name[:lines]]
This parameter is used to PRUNE log files. The name of the log
file is required -- provide the full path if not in the current
directory. The log will be pruned by number of lines of text...
old lines are removed from the top of the log. This pruning is
done "in place" -- no temporary files are created.
The lines kept defaults to 1500. If you want to keep more or
less, follow the file name with a colon and follow with the
number of lines you want to keep (up to 65535 lines).
Example: DOITALL PC:\QBBS\SYSTEM.LOG:2000
Allfiles Listings
-----------------
L[name] Make an allfiles LIST with the file name "name." Provide the full
path and file name -- if the path is omitted, DOITALL will create
the file in the current directory. It will overwrite any file
with the same name and path. The information DOITALL needs to do
this is read from FILECFG.DAT.
Example: DOITALL PC:\QBBS\FILES231.710
Bulletin Generator
------------------
DOITALL is capable of making a number of useful bulletins for you. Do you
remember QBEST? It creates user bulletins for QuickBBS systems. It's a
nice piece of work, and the author (to his credit) didn't ask anything
for it. However, it also requires the "old style" of CONFIG.BBS file,
something you had to run 276TO275.EXE and 275TO266.EXE every day to get.
DOITALL does not make all of the QBEST bulletins, but it makes all of the
ones it can without creating the extra index and data files necessary to
make the other ones. The whole idea is to AVOID extra files -- remember?
Also...DOITALL supports GoldBase.
U[name] Generates a Best USER bulletin with the file name and path
specified. If the file already exists, it will be overwritten.
The 12 highest users of these functions are displayed, all in
one bulletin:
Number of calls
Messages posted
Files downloaded
Download kilobytes
Files uploaded
Upload kilobytes
These are displayed in order...each screen also gives the total
system use for the parameter and the average per user. It uses
QuickBBS standard metacharacters for page pausing and screen
clearing, so the bulletin will be displayed as 6 individual
screens -- one after the other -- complete with ENTER prompts.
Example: DOITALL PC:\QBBS\TEXT\BESTUSER.ASC
B[name] Generates a list of callers that have a BIRTHDAY this month. You
must provide the file name, as above. Both names and dates are
displayed, in chronological order. Again, "name" is the full
path and file name for the bulletin, and will overwrite the
previous version.
Example: DOITALL BC:\QBBS\TEXT\BDAY.ASC
General Switches
----------------
A "Okay," you may ask..."How do I get the ANSI bulletins? Just put
this switch on the command line. Bulletins generated prior to the
switch will be in ASCII, and bulletins afterwards will be in ANSI.
The following example will create both ANSI and ASCII birthday
bulletins.
DOITALL BC:\QBBS\TEXT\BDAY.ASC A BC:\QBBS\TEXT\BDAY.ANS
If 'A' is omitted, bulletins and output files default to ASCII.
W WHOA! mode. This behaves just like the A switch above, except
anything on the command line after this switch will run with some
delays built into the program. DOITALL often runs TOO FAST, so
it's nearly impossible to read the output. If you don't care to
read the screen output anyway, don't use this switch. However, it
is there if you need it.
ORDER OF OPERATION
------------------
To ensure the best integrity of some operations, the switches are processed
in a certain order. As an example, this may be necessary to ensure that any
allfiles list has its entries sorted in alphabetical order (if requested) no
matter what order you enter the parameters on the command line.
1) Prunes any log files.
Changes any user settings.
Creates all ASCII bulletins, until it reaches an /A switch.
Creates all ANSI bulletins after encountering an /A switch.
2) Processes file listings for missing files and orphans.
3) Sorts the file listings.
4) Creates an allfiles list.
5) Displays a completion message.
MORE EXAMPLES
-------------
The following will generate an ASCII and ANSI user bulletin in the current
directory. Screen display is slowed during ANSI bulletin generation.
DOITALL UBESTUSER.ASC A W UBESTUSER.ANS
The following will generate an ANSI birthday bulletin in the QuickBBS text
files directory.
DOITALL A BC:\QBBS\TEXTFILE\BIRTHDAY.ANS
The following command will sort and process all your FILES.BBS, generate an
ASCII best caller bulletin of the name BESTUSER.ASC in your BBS textfiles
directory, and create an allfiles list named FILES231.710 in the current
(default) directory:
DOITALL S FFILES.BBS LFILES231.710 UC:\QBBS\TXTFILES\BESTUSER.ASC
Prune your system logs to 2000 lines:
DOITALL PC:\QBBS\NODE1\SYSTEM.LOG:2000 PC:\QBBS\NODE2\SYSTEM.LOG:2000
Set the user's B4 and C3 flag, turn off D7, and change the user's security
level to 90:
DOITALL +B4 +C3 -D7 =90
ERRORS
------
DOITALL does not exit when it finds an error. Instead, it will give up what
it's currently doing, display a message about the error and proceed to the
next function you asked it to do. Unrecognized command line switches are
simply ignored.
There are also many functions that, once started, do not request user input.
Therefore I have enabled continuous break checking. In the unlikely event
you see the program going off in some direction you don't want, press
CTRL-BREAK and it will stop wherever it left off.
DOITALL attempts to open files in shared mode, but some files are completely
erased and/or rewritten during some functions and you could end up with a
sharing violation if you run DOITALL with a user online. I suggest that you
get into the habit of running DOITALL with your system down, or at least
when you don't have a caller online (like when your mailer is waiting for a
call).
Errors you might encounter are:
1) FILE NOT FOUND. The file specified on the command line isn't where
you said it was. Also occurs if DOITALL can't find your system
config files in either the current directory or the environment
variable %QUICK% directory.
2) NO FILE NAME PROVIDED. You asked to generate a bulletin or allfiles
list but failed to provide a name for the new file.
3) ERROR OPENING FILE. The file was found, but DOITALL couldn't open it.
This could happen if you have a user online locking a config file
that DOITALL is trying to read.
4) INSUFFICIENT MEMORY. In order to sort a file listing, the file must
fit into memory. DOITALL dynamically allocates heap memory for
this sort, but if system memory is low (or the file is really big)
this may not be enough. If this happens, DOITALL exits gracefully
but the file will remain unsorted. However, I have successfully
sorted files listings of >89k using DOITALL.
A future version of DOITALL will sort the list in portions and
then merge the sorted parts to obtain the final, sorted list.
EXIT ERRORLEVELS
----------------
As noted above, a file or memory error does NOT cause DOITALL to exit.
However, one of the following situations might.
0 - Normal exit (despite any memory/file access errors).
1 - Insufficient number of command line parameters (erroneous command
line parameters are simply ignored).
USING DOITALL with CD-ROMS
--------------------------
DOITALL works great with CD-ROMs. However, they don't call it "read-only
memory" for nothing -- you won't be able to sort or fix your file listings
while they sit on the disk; DOITALL will try to open your file listing with
write access, fail, and skip over those areas. This is a very good thing;
you can freely mix and match hard drive and CD-ROM file areas in your BBS
configuration and not worry about whether DOITALL will hang your system.
However, to take full advantage of DOITALL's capabilities you may wish to
copy all the listings to your hard drive and redirect the listing's path and
file name for each file area on the disk using QCONFIG. This may sound like
a lot of work -- and it is. But listings found on CD-ROMs often have errors
that cannot be corrected any other way. This also greatly speeds up BBS
keyword searches and the like. So I do recommend that you take the trouble
to do this and have DOITALL fix those listings for you.
One other thing about CD-ROMs...they are slower. DOITALL tries to open all
files in shared mode. In some multitasking environments, using a slow
drive, this may cause a sharing violation that really isn't there. Just hit
"retry," and it will work. Newer, faster drives don't seem to suffer from
this anomaly as much; but I still suggest that you supervise DOITALL the
first few times you run it if you plan to have it scan your CD-ROMs in AUTO
mode.
REGISTRATION?
-------------
Doitall used to cost $10 to register, but nobody was willing to pay for it.
So I'm releasing it as freeware. Please note that this also releases me
from any obligation to support the product or provide upgrades. If people
had supported me, I would have supported them...it just didn't work out
that way.
If you like DOITALL, I can still use some cash. May I suggest $5? Make the
check payable to Bruce Bowman at the following address:
DIRT CHEAP SOFTWARE
c/o Bruce Bowman
8364 S. State Road 39
Clayton, IN 46118
DISCLAIMER and other LEGAL BS
-----------------------------
Bruce Bowman and Dirt Cheap Software make no claims that DOITALL will
perform to specifications on your system. By using DOITALL, you agree to
hold Bruce Bowman and Dirt Cheap Software completely blameless for any
problems you may have with your system after using DOITALL. Although
DOITALL has performed flawlessly in testing, it is highly recommended
that you do a complete backup of your system before running any program
than can affect operation of your BBS like DOITALL can.
Enjoy DOITALL, and let me know what you think!
ACKNOWLEDGEMENTS
----------------
QFILES (c) 1989 by Mark J. Hogan
QBEST (c) 1988 by Ronen Magid
Bruce Bowman 8/24/97