home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / MISC / DOITAL11.ZIP / DOITALL.DOC next >
Text File  |  1997-08-23  |  22KB  |  434 lines

  1. Type:                             │       .  │         │  │
  2.                                   │         ─┼─        │  │
  3.    COPY DOITALL.DOC PRN       ┌───┤ ┌───┐ │  │  ┌───┤  │  │
  4.                               │   │ │   │ │  │  │   │  │  │
  5.         to print these docs!  └───┘ └───┘ ┴  └─ └───┴  └  └   Version 1.1
  6.  
  7.  
  8. WHAT IS DOITALL?
  9. --------------- 
  10. DOITALL is a Swiss Army Knife file maintenance and bulletin generator for 
  11. both Classic and GoldBase QuickBBS systems. Auto-detects GoldBase. And the
  12. best thing -- it requires no config files of its own. It reads QuickBBS's
  13. config files instead, and will search for them using the QUICK environment
  14. variable if it can't find them in the current directory.
  15.  
  16.   o Sorts your file listings alphabetically.
  17.   o Checks for missing files and orphans.
  18.   o Creates allfiles listings (ANSI or ASCII).
  19.   o Creates "best user" bulletins (ANSI or ASCII).
  20.   o Prunes long log files by number of lines.
  21.   o Creates a user birthday bulletin (ANSI or ASCII).
  22.   o Can be run as a DOOR to alter user flags and security!
  23.   o FREEWARE!
  24.  
  25.  
  26. REALLY? TELL ME MORE!
  27. --------------------
  28. I started work on DOITALL because I grew fed up with having a bunch of 
  29. utilities (each with its own config file) to clean up my files listings, 
  30. create an allfiles list, generate caller bulletins, etc. Even though I've 
  31. found a freeware utility or two that will do some of this, it became a 
  32. real pain to maintain all of those config files.
  33.  
  34. DOITALL is different. It reads the QUICKBBS CONFIG FILES instead, and thus
  35. requires none of its own. The main idea behind DOITALL is to eliminate a
  36. bunch of utilities, combining them into a single program that can perform
  37. most of the tasks without proliferating files in your main BBS directory.
  38. All DOITALL has is a single executable, and all options are controlled by 
  39. command line switches. You will not be able to create your own ANSI header
  40. for your allfiles list (for example)...however, you should be pleased with
  41. a BBS directory that is free of extraneous configuration garbage that you 
  42. have to update (and possibly screw up) every time you change anything. I 
  43. saved TWELVE files in my QuickBBS directory when DOITALL was completed. 
  44.  
  45.  
  46. HOW TO USE DOITALL
  47. ------------------
  48. For convenience sake, each function of DOITALL is discussed below. Keep in
  49. mind, though, that you can do everything at once if you want to, and don't
  50. have to repeatedly call DOITALL. Just stick everything on one command line.
  51.  
  52. Be sure to avoid any hyphens or slashes on the command line to identify the
  53. switches -- they are not necessary and that function won't run if you do.
  54.  
  55.  
  56.                          File Area Maintenance
  57.                          ---------------------
  58. Remember QFILES? This utility sorts your file area listings, finds orphan
  59. files and prompts you for a file description, and finds missing files and
  60. asks you if you want to remove them from FILES.BBS. However, it requires 
  61. a FLSEARCH.CTL to figure out where your file areas are. And you have to 
  62. specify how many header lines in the FILES.BBS that should be ignored (and
  63. the system name, etc). In total, there were three (count 'em) config files
  64. and the executable which were necessary for it to do its job. Last I heard,
  65. QFILES registration was $10.
  66.  
  67. DOITALL does all of this, figures out how many header lines to ignore by 
  68. itself, gets the file areas from FILECFG.DAT, and system information from
  69. QUICKCFG.DAT. Also, it does not require all the listings to be named
  70. FILES.BBS or to be located in the same directory as the files themselves
  71. -- whatever is in your FILECFG.DAT goes. Works great with CD-ROMs.                             
  72.  
  73. S       SORTS every file area's files list. Entries are sorted in alpha-
  74.         betical order. Header lines (any empty line or a line that begins 
  75.         with a space) are retained. Blank lines found in the body of the
  76.         files listing are stripped from the file. Multiple-line file 
  77.         listings are supported. Good for your nightly BBS maintenance, 
  78.         especially on areas that get a lot of upload activity. 
  79.         
  80.         DOITALL will read your FILECFG.DAT to find these files. If a user
  81.         has one of the files open, DOITALL should skip it...however, I
  82.         wouldn't get into the habit of doing this. Your FILES.BBS files
  83.         (whatever you call them) are written in place:  DO NOT INTERRUPT
  84.         OPERATION of the program or you may lose some of your listings.
  85.         
  86.              Example:            DOITALL S
  87.  
  88. F[name] Check for orphaned and missing FILES. "Orphan" files are present
  89.  [AUTO] in the download directory, but not in the file listing. "Missing"
  90.         files are in the listing but not in the directory. This option
  91.         essentially "fixes" your files listings and directory entries so
  92.         they match up. Place the "name" parameter immediately after the 
  93.         'F' to ignore any particular file name when doing the orphan file 
  94.         scan. If the "name" is ommitted, all files will be flagged.
  95.         
  96.              Example:            DOITALL FFILES.BBS
  97.  
  98.         DOITALL first looks for missing files. For each one found, you'll 
  99.         be asked if you want to delete the entry from the listing. If you
  100.         don't, the file will be listed as OFFLINE when displayed by 
  101.         QuickBBS.
  102.         
  103.         DOITALL then checks for orphans. For each one found, DOITALL asks 
  104.         if you want to delete the file, skip it (i.e. do nothing), or add 
  105.         a description to the listing. You can add as many lines of text as 
  106.         will fit into memory. The description line(s) will be appended to
  107.         the end of the file and start in column 33 -- which not only looks 
  108.         weird when viewed with a text editor, but takes more drive space. 
  109.         Rest assured that it looks fine when QuickBBS displays it. This is
  110.         the only way to get QuickBBS to support multi-line listings and 
  111.         still have all the columns line up nice and neat.        
  112.        
  113.   AUTO  There is another special use of the "name" parameter. If you place 
  114.   MODE  the word "AUTO" here, all orphan files will be ignored, and all 
  115.         missing files will be removed from the listing.
  116.  
  117.              Example:            DOITALL FAUTO
  118.  
  119.         Thus, you may run this command in your nightly maintenance without
  120.         risk of deleting a file you wanted to keep, or having to be around
  121.         to type something at the keyboard every time. Make sure AUTO is in
  122.         capital letters -- if it isn't, DOITALL will instead ignore all 
  123.         files named "auto." 
  124.         
  125. During a file listing fix, DOITALL creates a temporary file in the FILES.BBS
  126. directory (DOIT~TMP.$~$) and builds the new listing there. When done, 
  127. DOITALL replaces your original file with this temporary one. If your system
  128. crashes during a file fix, you may delete this temporary file and your 
  129. original listing will remain usable.       
  130.  
  131.  
  132.                          As a User Settings Door
  133.                          -----------------------
  134. This is a rather unique application of DOITALL. You can run this program as 
  135. a type 7 menu item (door) from QuickBBS to change user settings by altering
  136. EXITINFO.BBS. Note that it IS possible to do this already using a series of
  137. autoexecute menus and questionnaire files. However, keep in mind that each 
  138. questionnaire takes two more files in your BBS directory, plus an extra 
  139. menu. It's a lot easier to just put a DOITALL command line in a type 7 menu.
  140.                                                         
  141. +Ax     This switch is used to "set" a flag. "A" is the flag series, and
  142.         "x" the actual flag number. To "turn on" the user's C7 flag, for 
  143.         example, put something like this on your type 7 "optional data" 
  144.         line:
  145.  
  146.                       C:\QBBS\DOITALL.EXE +C7
  147.                       
  148.         I've found that it's usually necessary to put the entire path and
  149.         file name (include the EXE extension) to get this to work. To set
  150.         ALL the flags, use zero. The following will set all the B flags:
  151.         
  152.                       C:\QBBS\DOITALL.EXE +B0                 
  153.                       
  154.         If a flag is already set, the flag-set command leaves it alone.                    
  155.   
  156. -Ax     As you might imagine, this command will clear (turn off) a user
  157.         flag. Usage is exactly the same as the flag-set commands above:
  158.  
  159.                       C:\QBBS\DOITALL.EXE -B4
  160.  
  161. =xxxxx  This command is used to change the online user's security level.
  162.         "xxxxx" is the new security level, and must be in the range of
  163.         0-32000. The following sets the user's security to level 100:
  164.  
  165.                       C:\QBBS\DOITALL.EXE =100
  166.  
  167. SPECIAL NOTE!!!
  168. It's possible to run this DOITALL function from text files. For example, 
  169. QuickBBS offers no good "hook" to perform a flag or security change for a 
  170. new user based on whether his call is long-distance. But QuickBBS does 
  171. display the S-LONGD.ASC/ANS file. You can force QuickBBS to exit and change
  172. a flag setting whenever this file is displayed, by placing a command like 
  173. this at the end of the S-LONGD.ASC, S-LONGD.ANS and S-LONGD.RIP files:
  174.         
  175.                        ^XC:\Q\DOITALL.EXE +D4| 
  176.               
  177. The control-X character looks like an arrow pointing up. If you put this 
  178. in the text file, and enable "Allow shell from text files" in the Security
  179. section of QCONFIG, the caller's D4 flag will be set whenever this file is
  180. displayed. You also might want to use this capability for a user whose 
  181. name is in the system trashcan, who enters an illegal phone number, who
  182. fails to meet the upload/download ratios or your BBS, or whatever comes to
  183. mind. The text file itself becomes your "hook!" You can do this for just
  184. about ANY door, by the way.
  185.  
  186.  
  187.                           Log File Maintenance
  188.                           --------------------
  189. P[name[:lines]]
  190.         This parameter is used to PRUNE log files. The name of the log
  191.         file is required -- provide the full path if not in the current
  192.         directory. The log will be pruned by number of lines of text...
  193.         old lines are removed from the top of the log. This pruning is 
  194.         done "in place" -- no temporary files are created.
  195.         
  196.         The lines kept defaults to 1500. If you want to keep more or
  197.         less, follow the file name with a colon and follow with the 
  198.         number of lines you want to keep (up to 65535 lines).
  199.  
  200.              Example:      DOITALL PC:\QBBS\SYSTEM.LOG:2000
  201.  
  202.  
  203.                             Allfiles Listings
  204.                             -----------------
  205. L[name] Make an allfiles LIST with the file name "name." Provide the full 
  206.         path and file name -- if the path is omitted, DOITALL will create
  207.         the file in the current directory. It will overwrite any file
  208.         with the same name and path. The information DOITALL needs to do
  209.         this is read from FILECFG.DAT.
  210.     
  211.              Example:      DOITALL PC:\QBBS\FILES231.710
  212.                         
  213.  
  214.                             Bulletin Generator
  215.                             ------------------
  216. DOITALL is capable of making a number of useful bulletins for you. Do you
  217. remember QBEST? It creates user bulletins for QuickBBS systems. It's a 
  218. nice piece of work, and the author (to his credit) didn't ask anything 
  219. for it. However, it also requires the "old style" of CONFIG.BBS file, 
  220. something you had to run 276TO275.EXE and 275TO266.EXE every day to get.
  221.  
  222. DOITALL does not make all of the QBEST bulletins, but it makes all of the
  223. ones it can without creating the extra index and data files necessary to
  224. make the other ones. The whole idea is to AVOID extra files -- remember?
  225. Also...DOITALL supports GoldBase.
  226.  
  227. U[name] Generates a Best USER bulletin with the file name and path 
  228.         specified. If the file already exists, it will be overwritten.
  229.         The 12 highest users of these functions are displayed, all in 
  230.         one bulletin:
  231.         
  232.             Number of calls
  233.             Messages posted
  234.             Files downloaded
  235.             Download kilobytes
  236.             Files uploaded
  237.             Upload kilobytes
  238.              
  239.         These are displayed in order...each screen also gives the total
  240.         system use for the parameter and the average per user. It uses
  241.         QuickBBS standard metacharacters for page pausing and screen 
  242.         clearing, so the bulletin will be displayed as 6 individual
  243.         screens -- one after the other -- complete with ENTER prompts.
  244.  
  245.              Example:      DOITALL PC:\QBBS\TEXT\BESTUSER.ASC
  246.  
  247.        
  248. B[name] Generates a list of callers that have a BIRTHDAY this month. You
  249.         must provide the file name, as above. Both names and dates are
  250.         displayed, in chronological order. Again, "name" is the full
  251.         path and file name for the bulletin, and will overwrite the
  252.         previous version. 
  253.  
  254.              Example:      DOITALL BC:\QBBS\TEXT\BDAY.ASC
  255.  
  256.  
  257.                             General Switches
  258.                             ----------------
  259. A       "Okay," you may ask..."How do I get the ANSI bulletins? Just put
  260.         this switch on the command line. Bulletins generated prior to the
  261.         switch will be in ASCII, and bulletins afterwards will be in ANSI.
  262.         The following example will create both ANSI and ASCII birthday 
  263.         bulletins.
  264.         
  265.              DOITALL BC:\QBBS\TEXT\BDAY.ASC A BC:\QBBS\TEXT\BDAY.ANS
  266.      
  267.         If 'A' is omitted, bulletins and output files default to ASCII.
  268.  
  269. W       WHOA! mode. This behaves just like the A switch above, except 
  270.         anything on the command line after this switch will run with some
  271.         delays built into the program. DOITALL often runs TOO FAST, so 
  272.         it's nearly impossible to read the output. If you don't care to
  273.         read the screen output anyway, don't use this switch. However, it
  274.         is there if you need it.
  275.  
  276.  
  277. ORDER OF OPERATION
  278. ------------------                            
  279. To ensure the best integrity of some operations, the switches are processed
  280. in a certain order. As an example, this may be necessary to ensure that any 
  281. allfiles list has its entries sorted in alphabetical order (if requested) no 
  282. matter what order you enter the parameters on the command line.
  283.  
  284.   1) Prunes any log files.
  285.      Changes any user settings.
  286.      Creates all ASCII bulletins, until it reaches an /A switch.     
  287.      Creates all ANSI bulletins after encountering an /A switch.
  288.   2) Processes file listings for missing files and orphans.
  289.   3) Sorts the file listings.
  290.   4) Creates an allfiles list.
  291.   5) Displays a completion message.
  292.           
  293.  
  294. MORE EXAMPLES
  295. -------------
  296. The following will generate an ASCII and ANSI user bulletin in the current
  297. directory. Screen display is slowed during ANSI bulletin generation. 
  298.  
  299.   DOITALL UBESTUSER.ASC A W UBESTUSER.ANS
  300.          
  301. The following will generate an ANSI birthday bulletin in the QuickBBS text
  302. files directory.
  303.  
  304.   DOITALL A BC:\QBBS\TEXTFILE\BIRTHDAY.ANS
  305.     
  306. The following command will sort and process all your FILES.BBS, generate an 
  307. ASCII best caller bulletin of the name BESTUSER.ASC in your BBS textfiles
  308. directory, and create an allfiles list named FILES231.710 in the current
  309. (default) directory:
  310.  
  311.   DOITALL S FFILES.BBS LFILES231.710 UC:\QBBS\TXTFILES\BESTUSER.ASC
  312.                    
  313. Prune your system logs to 2000 lines:
  314.  
  315.   DOITALL PC:\QBBS\NODE1\SYSTEM.LOG:2000 PC:\QBBS\NODE2\SYSTEM.LOG:2000
  316.  
  317. Set the user's B4 and C3 flag, turn off D7, and change the user's security
  318. level to 90:
  319.  
  320.   DOITALL +B4 +C3 -D7 =90
  321.  
  322.                    
  323. ERRORS
  324. ------
  325. DOITALL does not exit when it finds an error. Instead, it will give up what
  326. it's currently doing, display a message about the error and proceed to the 
  327. next function you asked it to do. Unrecognized command line switches are 
  328. simply ignored. 
  329.  
  330. There are also many functions that, once started, do not request user input.
  331. Therefore I have enabled continuous break checking. In the unlikely event 
  332. you see the program going off in some direction you don't want, press 
  333. CTRL-BREAK and it will stop wherever it left off.
  334.  
  335. DOITALL attempts to open files in shared mode, but some files are completely
  336. erased and/or rewritten during some functions and you could end up with a 
  337. sharing violation if you run DOITALL with a user online. I suggest that you 
  338. get into the habit of running DOITALL with your system down, or at least
  339. when you don't have a caller online (like when your mailer is waiting for a
  340. call).                                          
  341.  
  342. Errors you might encounter are:
  343.  
  344.    1) FILE NOT FOUND. The file specified on the command line isn't where
  345.          you said it was. Also occurs if DOITALL can't find your system
  346.          config files in either the current directory or the environment
  347.          variable %QUICK% directory.                             
  348.    2) NO FILE NAME PROVIDED. You asked to generate a bulletin or allfiles
  349.          list but failed to provide a name for the new file.
  350.    3) ERROR OPENING FILE. The file was found, but DOITALL couldn't open it.
  351.          This could happen if you have a user online locking a config file
  352.          that DOITALL is trying to read.
  353.    4) INSUFFICIENT MEMORY. In order to sort a file listing, the file must
  354.          fit into memory. DOITALL dynamically allocates heap memory for 
  355.          this sort, but if system memory is low (or the file is really big) 
  356.          this may not be enough. If this happens, DOITALL exits gracefully
  357.          but the file will remain unsorted. However, I have successfully
  358.          sorted files listings of >89k using DOITALL.
  359.          A future version of DOITALL will sort the list in portions and 
  360.          then merge the sorted parts to obtain the final, sorted list. 
  361.                                                    
  362.  
  363. EXIT ERRORLEVELS
  364. ----------------
  365. As noted above, a file or memory error does NOT cause DOITALL to exit. 
  366. However, one of the following situations might.
  367.  
  368.   0 - Normal exit (despite any memory/file access errors).
  369.   1 - Insufficient number of command line parameters (erroneous command 
  370.       line parameters are simply ignored).
  371.  
  372.  
  373. USING DOITALL with CD-ROMS
  374. --------------------------
  375. DOITALL works great with CD-ROMs. However, they don't call it "read-only
  376. memory" for nothing -- you won't be able to sort or fix your file listings
  377. while they sit on the disk; DOITALL will try to open your file listing with
  378. write access, fail, and skip over those areas. This is a very good thing;
  379. you can freely mix and match hard drive and CD-ROM file areas in your BBS 
  380. configuration and not worry about whether DOITALL will hang your system.
  381.  
  382. However, to take full advantage of DOITALL's capabilities you may wish to 
  383. copy all the listings to your hard drive and redirect the listing's path and
  384. file name for each file area on the disk using QCONFIG. This may sound like  
  385. a lot of work -- and it is. But listings found on CD-ROMs often have errors
  386. that cannot be corrected any other way. This also greatly speeds up BBS 
  387. keyword searches and the like. So I do recommend that you take the trouble 
  388. to do this and have DOITALL fix those listings for you.
  389.  
  390. One other thing about CD-ROMs...they are slower. DOITALL tries to open all
  391. files in shared mode. In some multitasking environments, using a slow 
  392. drive, this may cause a sharing violation that really isn't there. Just hit 
  393. "retry," and it will work. Newer, faster drives don't seem to suffer from
  394. this anomaly as much; but I still suggest that you supervise DOITALL the 
  395. first few times you run it if you plan to have it scan your CD-ROMs in AUTO
  396. mode.
  397.                                          
  398.  
  399. REGISTRATION?
  400. -------------
  401. Doitall used to cost $10 to register, but nobody was willing to pay for it. 
  402. So I'm releasing it as freeware. Please note that this also releases me 
  403. from any obligation to support the product or provide upgrades. If people
  404. had supported me, I would have supported them...it just didn't work out
  405. that way.
  406.  
  407. If you like DOITALL, I can still use some cash. May I suggest $5? Make the
  408. check payable to Bruce Bowman at the following address:
  409.  
  410.                        DIRT CHEAP SOFTWARE
  411.                        c/o Bruce Bowman
  412.                        8364 S. State Road 39
  413.                        Clayton, IN  46118
  414.                                                                                             
  415.  
  416. DISCLAIMER and other LEGAL BS
  417. -----------------------------
  418. Bruce Bowman and Dirt Cheap Software make no claims that DOITALL will
  419. perform to specifications on your system. By using DOITALL, you agree to
  420. hold Bruce Bowman and Dirt Cheap Software completely blameless for any
  421. problems you may have with your system after using DOITALL. Although
  422. DOITALL has performed flawlessly in testing, it is highly recommended 
  423. that you do a complete backup of your system before running any program 
  424. than can affect operation of your BBS like DOITALL can.
  425.  
  426. Enjoy DOITALL, and let me know what you think!
  427.  
  428.                            
  429. ACKNOWLEDGEMENTS
  430. ----------------
  431. QFILES (c) 1989 by Mark J. Hogan
  432. QBEST (c) 1988 by Ronen Magid
  433.  
  434. Bruce Bowman        8/24/97