home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / bbs / sutil044.zip / SUTIL.DOC < prev    next >
Text File  |  1993-03-11  |  67KB  |  1,531 lines

  1.  
  2.      ═════════════════════════════════════════════════════════════════════
  3.                           Super BBS Utilities v0.44
  4.                                       by
  5.                                 Glenn Delahoy
  6.  
  7.                       (C) 1991 - 1993 Rough Productions
  8.      ═════════════════════════════════════════════════════════════════════
  9.  
  10.      SBBS Utilities is being developed as the all purpose Super BBS
  11.      utilities package.  In one program it can perform maintenance and
  12.      produce reports on nearly all aspects of Super BBS, eliminating
  13.      many of those dinky little utilities that do one or two things. The
  14.      AUTO command makes it ideal to include in your daily maintenance
  15.      event.
  16.  
  17.      I welcome any and all feedback that will help to improve it and make
  18.      it the most useful utility available for SBBS.
  19.  
  20.      The output can be redirected to any device so you can make a log of
  21.      operations or send it to the printer.
  22.  
  23.      SUTIL commands >SUTIL.LOG           makes a log file
  24.      SUTIL commands >LPT1:               makes a printout
  25.  
  26.      You can also redirect individual functions in a script so you can
  27.      have seperate reports from seperate functions all being executed from
  28.      a single script.
  29.  
  30.      If you redirect the output it will go to the screen as well.
  31.  
  32.      ═════════════════════════════════════════════════════════════════════
  33.                            SYSTEM REQUIREMENTS
  34.      ═════════════════════════════════════════════════════════════════════
  35.  
  36.      CONFIGURATION
  37.      ─────────────
  38.      SUtil does not require a configuration file.  All the information it
  39.      needs regarding your bbs system it can read from the SBBS config
  40.      files directly.  There are several functions that require information
  41.      that doesn't exist yet, for example the TWIT and UPGRADE functions.
  42.      These will be explained in detail later on.
  43.  
  44.      ENVIRONMENT VARIABLES
  45.      ─────────────────────
  46.      In order to find the SBBS files you need to have the SBBS environment
  47.      variable set (you should have this anyway).  What this means to a
  48.      single node setup is that you don't have to do a thing.
  49.  
  50.      For a multi-node setup you will need to set the SUTIL environment
  51.      variable which points to a line directory.  This tells SUtil to look
  52.      in this directory for the SBBS config files CONFIG.BBS and
  53.      SCONFIG.BBS.  For example:
  54.  
  55.      SET SUTIL=C:\SUPERBBS\NODE1
  56.  
  57.      If the TMP environment variable is found, it will use this path to
  58.      create any temporary files.  If not found it will use the SUtil home
  59.      directory instead.  Set this to a RAM drive to save significant
  60.      processing time and hard disk fragmentation.  For example:
  61.  
  62.      SET TMP=E:\
  63.  
  64.      LANGUAGE CONFIG
  65.      ───────────────
  66.      SUtil will search for a LANGUAGE.CTL file first in the line
  67.      directory, then in the system directory.  If it is found, the first
  68.      entry is read.  It will then look for this language file in first the
  69.      line directory, then the system directory.  If it is not found, it
  70.      will look for DEFAULT.LNG in first the line directory, then the
  71.      system directory.  If it is not found it will look for any language
  72.      file in first the line directory, then the system directory.  Use
  73.      'About SUtil' to check which language file it is using.  If it
  74.      reports it is unable to find a language file, please check your SBBS
  75.      setup.
  76.  
  77.      If the text path set in the language config is unavailable it will
  78.      take the text directory from the line config files.
  79.  
  80.      HELP
  81.      ────
  82.      For help on any command line parameters type the command on its own
  83.      or the command followed by a ?.  For a list of all available commands
  84.      type HELP.
  85.  
  86.      ═════════════════════════════════════════════════════════════════════
  87.                                ENVIRONMENT
  88.      ═════════════════════════════════════════════════════════════════════
  89.  
  90.      If you type SUTIL at the dos prompt with no command line parameters
  91.      the menu driven environment will start.  It is very intuitive and
  92.      should take you very little time to become familiar with.
  93.  
  94.      You can get on-line help at nearly any point by pressing F1.  Do this
  95.      when you first start it to see how it works.  You can use your cursor
  96.      up and down keys, the page up and down keys and the home and end keys
  97.      to navigate the help text.  When you are finished, press escape to
  98.      return to where you were.  If you have selected a function and are
  99.      prompted for parameters, you can press F1 to get an explanation of
  100.      the parameters, then escape back to type them in.  The help file is a
  101.      plain ASCII text file, so you can add your own help or examples if
  102.      you desire.  Each help subject begins with the subject title enclosed
  103.      in asterisks and ends with the keyword 'end' in asterisks.  The
  104.      maximum width is 74 columns.
  105.  
  106.      To navigate the menu system, use your cursor up and down keys, page
  107.      up and down keys and the home and end keys to move the highlight to
  108.      the desired option, then press enter to select that option.  To
  109.      escape from a menu to a previous menu you can either select quit,
  110.      which is always the last menu option, or press escape.  When you
  111.      select a menu option, you will either be presented with a further
  112.      menu, be prompted for command line parameters or the option will be
  113.      executed.
  114.  
  115.      When you are prompted for command line parameters, you just type in
  116.      the data required for each field.  To move to the next field press
  117.      enter or tab.  To move to the previous field, press shift-tab.  To
  118.      execute the function, either press enter on the last field or press
  119.      F10.  F1 will get help for the current function.  In some cases, at
  120.      the dos prompt, you would need to use underscores to seperate words
  121.      for a single field, but in the environment this is not necessary.  To
  122.      quit the function without execution, press escape.
  123.  
  124.      After entering the parameters (for those functions that require it),
  125.      SUtil will revert to the normal dos display.  If a function is
  126.      expected to return any information, the display will be captured and
  127.      fed into a report viewer.  This allows you to scroll around the
  128.      captured text to view the entire output.
  129.  
  130.      To navigate the report viewer, use your cursor keys to move
  131.      up/down/left/right, the page keys to move up/down 20 lines at a time,
  132.      the home/end keys to take you to the first/last column of the current
  133.      line and the cntl-home/cntl-end keys to take you to the first and
  134.      last line of the current column.  Press F1 to get on-line help for
  135.      the viewer.  F2 will allow you to save the report to a file of your
  136.      choice.  F3 will allow you to edit the report before saving or you
  137.      can directly edit the files lists if viewing those.  This function
  138.      will shell to a batch file called EDIT.BAT.  This can be either in
  139.      the current directory or somewhere in the DOS path.  This allows you
  140.      to use your favorite text editor.  F4 is a simple string search
  141.      function.  It searches from the current position.  F10 will send the
  142.      report to the printer.
  143.  
  144.      ═════════════════════════════════════════════════════════════════════
  145.                            AVAILABLE COMMANDS
  146.      ═════════════════════════════════════════════════════════════════════
  147.  
  148.      KILL                Kill users
  149.      PACK                Pack user base
  150.      SORT                Sort user base
  151.      ASWPACK             Answer file pack
  152.      COMMENT             Update SysOp comment from ASW file
  153.      ALIAS               Alias only user list
  154.      SCOUNT              Super BBS download counter
  155.      BIMCOUNT            BiModem download counter
  156.      FDCOUNT             Front Door download counter
  157.      DBCOUNT             DBridge download counter
  158.      POPCOUNT            Portal Of Power download counter
  159.      LISTS               Make master files list
  160.      NODENEWS            Post nodelist news to msg
  161.      GAR                 Global attribute reset
  162.      GAS                 Global attribute set
  163.      GFR                 Global flag reset
  164.      GFS                 Global flag set
  165.      HIGHMSG             Global reset highest message read
  166.      UPGRADE             Upgrade users security
  167.      USERLIST            List all users
  168.      FINDUSERS           List users matching security/flags
  169.      SEARCHUSERS         Search users for given string
  170.      RESETCOLORS         Reset user colors to default
  171.      INFO                System info
  172.      FILES               Report on files base
  173.      HURL                Hurl files and descriptions
  174.      RECOVER             Recover corrupted user base
  175.      SORTFILES           Sort files.bbs list
  176.      ADDFILES            Add unlisted files
  177.      PACKFILES           Remove offline files from lists
  178.      PLAY                Play yell file
  179.      PAMS2BBS            Pams -> bbslist.bbs
  180.      NODE2BBS            Nodelist -> bbslist.bbs
  181.      CALLERS             Add last caller to FD inbound
  182.      FDCALLERS           Add FD last mail call to SBBS last callers
  183.      HIDELOCAL           Hide local calls
  184.      ATTACH              Local file attach
  185.      POST                Post text file to msg area
  186.      ANNOUNCE            Create msg of new files
  187.      TWIT                Delete msgs from any person/subject
  188.      CLEANMSG            Clean message headers
  189.      BOARDS              Report of message base
  190.      TRIMLOG             Trim system log
  191.      DATEFILE            Renames any file to today's date
  192.      FRDIRS              Create list of freq dirs
  193.      DOORUPDATE          Update door counter
  194.      DOORRESET           Reset door counter
  195.      DOORREPORT          Report door config
  196.      DOORGRAPH           Create graphs of door counters
  197.      DOORBAUD            Changes baud setting in dorinfo file
  198.      LOSTCARRIER         Post msg to callers who drop carrier
  199.      CARRIERREPORT       Report callers who have dropped carrer
  200.      CARRIERRESET        Reset lost carrier counters
  201.      FREQ                Create netmail file request
  202.      FATT                Create netmail file attach
  203.      SETYELL             Set yell on/off
  204.      LIMITS              Comparative report of user limits
  205.      SEARCHFILES         Search files lists for given string
  206.      BBSLIST             View BBSLIST file
  207.      KILLCOMMS           Kill old message comments
  208.      SORTFLSEARCH        Sort files config
  209.      AUTO                Run commands in script file
  210.      HELP                List all available commands
  211.  
  212.  
  213.      ═════════════════════════════════════════════════════════════════════
  214.                                USER BASE
  215.      ═════════════════════════════════════════════════════════════════════
  216.  
  217.      KILL USERS
  218.      ──────────
  219.      Usage: KILL <lowest security> <highest security> <days> [PACK]
  220.             {lowest security  = lowest security to kill}
  221.             {highest security = highest security to kill}
  222.             {days             = days old to kill}
  223.             {PACK             = optionally pack user base}
  224.  
  225.      Marks as deleted any users within the security range specified
  226.      *inclusive* that have not called in <days> number of days.  This
  227.      allows a range of securities or a single security level to be
  228.      deleted.  For example if you want to kill all users from level 20 to
  229.      level 40 who are older than 120 days then type:
  230.  
  231.      KILL 20 40 120
  232.  
  233.      If you want to kill all users at security level 10 who are older than
  234.      60 days then type
  235.  
  236.      KILL 10 10 60
  237.  
  238.      Further, you can delete all users within a range or single security
  239.      level immediately.  For example to delete all users from level 0 to
  240.      level 4, type:
  241.  
  242.      KILL 0 4 0
  243.  
  244.      Or only level 0 immediately:
  245.  
  246.      KILL 0 0 0
  247.  
  248.      This allows flexibility for keeping different level users for
  249.      differing lengths of time.  For instance, your new users at level 5
  250.      who never do much and probably won't call back can be deleted quickly
  251.      whilst you can allow those who have been upgraded time to get back
  252.      from their vacation.
  253.  
  254.      PACK USER BASE
  255.      ──────────────
  256.      Packs user base, removing 'deleted' users.
  257.  
  258.      SORT USER BASE
  259.      ──────────────
  260.      Usage: SORT <mode>
  261.             {mode = F, L, A, D, G, E, T, I, M, S}
  262.             {F = First name}
  263.             {L = Last name}
  264.             {A = Ascending security}
  265.             {D = Descending security}
  266.             {G = Ascending age}
  267.             {E = Descending age}
  268.             {T = Ascending calls}
  269.             {I = Descending calls}
  270.             {M = Ascending msgs Posted}
  271.             {S = Descending msgs Posted}
  272.  
  273.      Sorts the user base according to the mode on the command line. The
  274.      mode can be stacked.  For example SORT LD will sort by last name and
  275.      then by descending security.  Think in reverse when stacking the sort
  276.      mode.  For example if the first priority is security, it should be
  277.      the last entry in the sort mode. Before Sutil starts the sort it will
  278.      attempt to clean up the users entries.  It will remove any commas and
  279.      compress any multiple spaces.
  280.  
  281.      The SysOp, as set in the config will be the first entry in the user
  282.      base, followed by other entries with SysOp security, followed by the
  283.      rest of the user base as specified in the sort mode.
  284.  
  285.      ANSWER FILE PACK
  286.      ────────────────
  287.      Usage: ASWPACK <file>
  288.             {file = answer file, no extension}
  289.  
  290.      This will remove any entries from your questionnaire answer files
  291.      from users who no longer exist in the user base.
  292.  
  293.      UPDATE SYSOP COMMENTS FROM ANSWER FILE
  294.      ──────────────────────────────────────
  295.      Usage: COMMENT <keyword> [answer file]
  296.             {keyword     = keyword to search for in answer file}
  297.             {answer file = answer file to use, no extension (default=NEWUSER) }
  298.  
  299.      Scans the given questionnaire answer file looking for the given
  300.      keyword. Any text on the same line immediately following the keyword
  301.      will be written into the SysOp Comment field in the user base for
  302.      that user.  The most recent entry in the answer file will always be
  303.      used.
  304.  
  305.      ALIAS ONLY LIST
  306.      ───────────────
  307.      Creates an alias only list of users that looks a lot like the normal
  308.      SBBS user list.  This is useful for systems that use aliases only, no
  309.      real names.  The config file is read to get the text directory where
  310.      the two files are created.
  311.  
  312.      GLOBAL ATTRIBUTE RESET
  313.      ──────────────────────
  314.      Usage: GAR <sec> <attribute>
  315.             {sec       = security or ALL}
  316.             {attribute = valid user attribute}
  317.  
  318.      Valid User Attributes:
  319.           0. Deleted                       9. Log On New Files Check
  320.           1. Screen Clear Codes           10. No D/l Ratio
  321.           2. Page Pause                   11. Female
  322.           3. Graphics                     12. Delete File After Viewing
  323.           4. No Kill                      13. Display File Once
  324.           5. Ignore D/l Hours             14. File Viewed
  325.           6. ANSI Editor                  15. Full Screen Viewer
  326.           7. Do Not Disturb               16. Combined Mail Check
  327.           8. Log On Mail Check            17. No Hotkeys
  328.  
  329.      Switches off the user attribute you specify for every user at the
  330.      specified security.  If security is ALL then the attribute is
  331.      switched off for all security levels.
  332.  
  333.      GLOBAL ATTRIBUTE SET
  334.      ────────────────────
  335.      Usage: GAS <sec> <attribute>
  336.             {sec       = security or ALL}
  337.             {attribute = valid user attribute}
  338.  
  339.      Switches on the user attribute you specify for every user at the
  340.      specified security.  If security is ALL then the attribute is
  341.      switched on for all security levels.  Attributes as above.
  342.  
  343.      GLOBAL FLAG RESET
  344.      ─────────────────
  345.      Usage: GFR <sec> <flag>
  346.             {sec  = security or ALL}
  347.             {flag = A1 to D8}
  348.  
  349.      Switches off the user flag you specify for every user at the
  350.      specified security level.  If the security is ALL then the flag will
  351.      be reset for all security levels.
  352.  
  353.      GLOBAL FLAG SET
  354.      ───────────────
  355.      Usage: GFS <sec> <flag>
  356.             {sec  = security or ALL}
  357.             {flag = A1 to D8}
  358.  
  359.      Switches on the user flag you specify for every user at the specified
  360.      security level.  If the security is ALL then the flag will be set for
  361.      all security levels.
  362.  
  363.      UPGRADE USERS SECURITY
  364.      ──────────────────────
  365.      Usage: UPGRADE <controlfile>
  366.             {controlfile = text file containing security specs}
  367.  
  368.      Scans the user base and upgrades any users that meet the criteria as
  369.      listed in the specified control file.  The control file is a text
  370.      file with one spec per line as follows:
  371.  
  372.      <current security> <new security> <msgs> <upk> <calls>
  373.  
  374.      Each line contains old and new security specs and the criteria that
  375.      must be matched in order to be upgraded to the new security, each
  376.      number is seperated by a space.  Any missing numbers will cause SUtil
  377.      to barf in a big way.
  378.  
  379.      Each user must be at the 'current security' and have at least the
  380.      number of messages, uploads in KB's and calls specified in order to
  381.      be upgraded to the 'new security'.  If you are not concerned what the
  382.      current security is, so long as they meet the other qualifications,
  383.      then put '-1' as the current security.  If you are not concerned
  384.      about any of the qualifications (msgs,upk,calls) then put '0' for
  385.      that parameter.  Any line beginning with a semi-colon (;) is treated
  386.      as a remark and is ignored.
  387.  
  388.      For example:
  389.  
  390.      ;sample upgrade security control file
  391.      5 10 20 100 20
  392.      10 20 0 0 20
  393.      -1 30 100 400 50
  394.  
  395.      For the first line, any users currently at level 5 will be upgraded
  396.      to level 10 if they have entered 20 or more messages AND uploaded
  397.      100KB or more AND called 20 or more times.  For the second line, any
  398.      users currently at level 10 will be upgraded to level 20 if they have
  399.      called 20 or more times (because the other parameters are 0 they are
  400.      effectively not used).  For the third line, any users, regardless of
  401.      their current level, will be upgraded to level 30 if they have
  402.      written 100 or more messages AND uploaded 400 KB or more AND have
  403.      called 50 or more times.
  404.  
  405.      USER LIST
  406.      ─────────
  407.      Usage: USERLIST [options]
  408.             {options = FORM (output format - defaults to list format)}
  409.             {options = CITY|SECURITY|ALIAS|DOB|AGE|HOMEPHONE|DATAPHONE}
  410.             {options = FIRSTCALL|UPS|UPK|DOWNS|DOWNK|RATIOK|MSGS|CALLS}
  411.             {options = MINUTES|COMMENT}
  412.  
  413.      Makes a list of all users including the information specified on the
  414.      command line.  Any combination of options is allowed.  For example:
  415.  
  416.      USERLIST ALIAS SECURITY
  417.  
  418.      will produce a list of users' names and their aliases and security.
  419.      If you include FORM on the command line the output will be formatted
  420.      one field per line, otherwise it is in list format.
  421.  
  422.      FIND MATCHING USERS
  423.      ───────────────────
  424.      Usage: FINDUSERS [NOT] [/Sx] [/Fx]
  425.             {/S = security to find}
  426.             {/F = flag to find}
  427.             {NOT = Find users not matching}
  428.  
  429.      Will list any users it finds that matches the criteria on the command
  430.      line.  You can use either security or flags or both.  If you use only
  431.      one criteria, it will list all users that match it.  If you use both
  432.      criteria, it will list all users that match both.  For eg:
  433.  
  434.      FINDUSERS /S20
  435.  
  436.      Finds all users with security level 20.
  437.  
  438.      FINDUSERS /Fa1
  439.  
  440.      Finds all users with flag A1 set.
  441.  
  442.      FINDUSERS /S20 /Fa1
  443.  
  444.      Finds all users with security level 20 AND flag A1 set.
  445.  
  446.      If you include the NOT option, then SUtil will list all users that do
  447.      not match the criteria.
  448.  
  449.      FINDUSERS NOT /S20
  450.  
  451.      Will list all users who are not at security level 20.
  452.  
  453.      RECOVER USER BASE
  454.      ─────────────────
  455.      Attempts to reconstruct a corrupted user base.  It compares the
  456.      USERS.BBS against the SUSERS.BBS.  Any entries it finds in USERS.BBS
  457.      that can't be found in SUSERS.BBS will be saved and dummy data
  458.      created for it's SUSERS.BBS counterpart.  The extra user pointer in
  459.      users.bbs is set to -1, this will force SBBS to ask the user for the
  460.      susers.bbs details next time he/she logs on.  You will need to reSORT
  461.      the user base after a recover in order to create a new nameidx file.
  462.  
  463.      BE WARNED!!  Do a backup before playing with this and then only use
  464.      it in emergencies.
  465.  
  466.      GLOBAL RESET HIGHEST MESSAGE READ
  467.      ─────────────────────────────────
  468.      Usage: HIGHMSG <msg number>
  469.             {msg number = between 0 & 32767}
  470.  
  471.      Resets 'highest message read' counter for all users to the number
  472.      specified on the command line.
  473.  
  474.      SEARCH USERS
  475.      ────────────
  476.      Usage: SEARCHUSERS <string>
  477.  
  478.      Searches user records and reports any occurrances of the specified
  479.      string.  This is useful for finding users in the same town or area
  480.      code or users that have suspiciously similar passwords or maybe a
  481.      number of users have the same phone number.
  482.  
  483.      RESET USER COLORS
  484.      ─────────────────
  485.      Resets all users colors to the default specified in the SBBS config.
  486.  
  487.      LIMITS REPORT
  488.      ─────────────
  489.      Usage: LIMITS
  490.  
  491.      Creates a report comparing user limits for all security levels.
  492.  
  493.      POST MESSAGE TO CALLERS WHO DROP CARRIER
  494.      ────────────────────────────────────────
  495.      Usage: LOSTCARRIER <logfile> <textfile> <board>
  496.             {logfile  = full path and name of system log file}
  497.             {textfile = text file to post}
  498.             {board    = message base board number to post to}
  499.  
  500.      Scans the system log and looks for callers who have dropped carrier.
  501.      It then reads the text file replacing any parameters and posts it to
  502.      the caller in the specified board number.
  503.  
  504.      Replacable parameters are:
  505.      ^D (ASCII 4)  Date caller dropped carrier
  506.      ^T (ASCII 20) Time caller dropped carrier.
  507.  
  508.      A sample text file is enclosed.  If any lost carriers are found, the
  509.      user's lost carrier counter is updated in the USERS.BBS file.  The
  510.      place used in this file is known as ExtraSpace1 and is currently
  511.      unused.  This may change in future versions of SBBS.
  512.  
  513.      LOST CARRIER REPORT
  514.      ───────────────────
  515.      Usage: CARRIERREPORT [entries]
  516.             {Entries = Number of entries to include}
  517.  
  518.      Displays a sorted list of users who have dropped carrier.  'Entries'
  519.      is the maximum number of entries to include.  If omitted, all users
  520.      who have dropped carrier are included.  This report can be captured
  521.      via redirection and posted to the message base.
  522.  
  523.      LOST CARRIER RESET
  524.      ──────────────────
  525.      Usage: CARRIERRESET <user name>
  526.             {User Name = User's name to reset or ALL}
  527.  
  528.      Resets the lost carrier counter for the specified user.  If the user
  529.      name is ALL then all users are reset.
  530.  
  531.      KILL OLD MESSAGE COMMENTS
  532.      ─────────────────────────
  533.      Usage: KILLCOMMS
  534.  
  535.      Deletes '.INF' message comment files in the local file attach
  536.      directory from users who no longer exist in the user base.
  537.  
  538.      ═════════════════════════════════════════════════════════════════════
  539.                               SYSTEM FILES
  540.      ═════════════════════════════════════════════════════════════════════
  541.  
  542.      PLAY YELL FILE
  543.      ──────────────
  544.      Usage: PLAY [yell file]
  545.             {yell file = any file in current directory}
  546.             {            any file in any directory}
  547.             {            defaults to SBBSYELL.CTL in current Dir}
  548.  
  549.      Plays the yell control file approximately how it would be heard from
  550.      the bbs.  The speed seems to be machine dependant, otherwise it's
  551.      pretty accurate.
  552.  
  553.      PAMS2BBS
  554.      ────────
  555.      Usage: PAMS2BBS <pamsfile> <state>
  556.             {pamsfile = full path, extension of pams list (BBSAALL.DAT?)}
  557.             {state    = VIC, NSW, QLD, ACT, NT, SA, TAS, WA}
  558.  
  559.      Creates a BBSLIST.BBS file from the Australian BBS directory 'all'
  560.      file that can be used with the SBBS bbs list functions.  As of the
  561.      last release of the Aust BBS directory, the file required for this
  562.      function is called BBSAALL.DAT.  As this may change in the future I
  563.      have made this file a command line option.  The second option is the
  564.      state you want listed.
  565.  
  566.      NODE2BBS
  567.      ────────
  568.      Usage: NODE2BBS <Zone:Net>
  569.             {Zone = Network zone to include}
  570.             {Net  = Net to include or 0 for all}
  571.  
  572.      Creates a BBSLIST.BBS file from a fido compatible nodelist.  It
  573.      searches the SBBS config file to find the nodelist directory, then
  574.      looks for the first nodelist in that directory.  Note that this is
  575.      not necessarily the latest one.  You must specify zone and net
  576.      numbers.  For example, 3:635, is zone 3, net 635.  To specify all
  577.      nets in a zone type, 3:0.  If the zone isn't found you get a nice
  578.      zero length bbslist file.
  579.  
  580.      TRIM SYSTEM LOG
  581.      ───────────────
  582.      Usage: TRIMLOG <logfile> <days>
  583.             {logfile = full path and file name of system log file}
  584.             {days    = number of days to keep in log}
  585.  
  586.      Scans specified system log file and removes entries older than
  587.      specified number of days.  Before it starts it makes a copy of the
  588.      log file to *.BAK so in case it dies half way you can recover the
  589.      log.  If a *.BAK file already exists it is deleted.
  590.  
  591.      NODE NEWS
  592.      ─────────
  593.      Usage: NODENEWS <board>
  594.             {board = message area to post news}
  595.  
  596.      Extracts any news bulletins in the current nodelist and writes it to
  597.      a message area specified on the command line.  Put this after your
  598.      nodediff update.
  599.  
  600.      UPDATE FRONT DOOR INBOUND HISTORY
  601.      ─────────────────────────────────
  602.      Usage: CALLERS [dir]
  603.  
  604.      Examines the SCALLERS.BBS file to get the last caller online. Inserts
  605.      this info into the Front Door INBOUND.HIS and LASTCALL.FD files.  You
  606.      can then use the FD inbound history to see what bbs callers you've
  607.      had and the last caller shows up on the FD main screen.  Note that
  608.      SBBS doesn't put the SysOp into the SCALLERS.BBS file.  The last
  609.      caller will be the last caller that isn't the SysOp.  In the FD
  610.      inbound history the received bytes will be the caller's total
  611.      uploads, the sent bytes will be the caller's downloads for today and
  612.      the cost will be the caller's age.
  613.  
  614.      If you run FD 2.02 then you do not need the dir parameter.  If you
  615.      are running the commercial version (2.10) then the dir parameter
  616.      should point to the Front Door system directory where all inbound and
  617.      lastcall files are stored.  If this parameter is used SUtil will look
  618.      for the TASK environment variable used by FD to construct the file
  619.      names INBx.HIS and LASTCx.FD where 'x' is the TASK number.
  620.  
  621.      In summary:
  622.  
  623.      If you have FD 2.02 then
  624.  
  625.      SUTIL CALLERS
  626.  
  627.      will update INBOUND.HIS and LASTCALL.FD files.
  628.  
  629.      If you have FD 2.10 then
  630.  
  631.      SUTIL CALLERS [dir]
  632.  
  633.      will update INBx.HIS and LASTCx.FD files in the 'dir' directory using
  634.      the TASK environment variable for 'x'.
  635.  
  636.      This has only been tested with FD 2.02 and 2.10.
  637.      
  638.      UPDATE SBBS INBOUND HISTORY
  639.      ───────────────────────────
  640.      Usage: FDCALLERS [dir]
  641.  
  642.      Examines the Front Door LASTCALL file to get the last mail call.
  643.      Inserts this info into the SBBS SCALLERS file.  You can then use the
  644.      SBBS 'view today's callers' or 'view last 15 callers' to see what
  645.      mail calls you've had.  Because FD doesn't store the log on and log
  646.      off times seperately these will be the same in the scallers file.
  647.      Also the baud and age are not known.
  648.  
  649.      If you run FD 2.02, you do not need the dir parameter.  If you are
  650.      running the commercial version (2.10), the dir parameter should point
  651.      to the Front Door system directory where all inbound and lastcall
  652.      files are stored.  If this parameter is used SUtil will look for the
  653.      TASK environment variable used by FD to construct the file names
  654.      INBx.HIS and LASTCx.FD where 'x' is the TASK number.
  655.  
  656.      In summary:
  657.  
  658.      If you have FD 2.02 then
  659.  
  660.      SUTIL FDCALLERS
  661.  
  662.      will read INBOUND.HIS and LASTCALL.FD files.
  663.  
  664.      If you have FD 2.10 then
  665.  
  666.      SUTIL FDCALLERS [dir]
  667.  
  668.      will read INBx.HIS and LASTCx.FD files in the 'dir' directory using
  669.      the TASK environment variable for 'x'.
  670.  
  671.      This has only been tested with FD 2.02 and 2.10.
  672.      
  673.      HIDE LOCAL CALLS
  674.      ────────────────
  675.      Usage: HIDELOCAL <baud>
  676.             {baud = new baud setting for local calls}
  677.  
  678.      Scans SCALLERS.BBS and converts any baud settings of 0 to new setting
  679.      specified on the command line.  This has the effect of making local
  680.      log-ons look like remote calls when viewing Today's Calls and Last 15
  681.      Callers.
  682.  
  683.      SET YELL
  684.      ────────
  685.      Usage: SETYELL <control file>
  686.             {control file = text file specifying yell times}
  687.  
  688.      This function reads the control file specified and toggles the Scroll
  689.      Lock according to the time of day.  The Scroll Lock, when switched
  690.      off, allows users to yell if other config settings allow it, if
  691.      switched on the user is unable to yell at all.  Set this option in
  692.      your bbs batch file right before the bbs starts up to allow greater
  693.      flexibility of SysOp availability.
  694.  
  695.      The control file is a text file with one day's entry per line.  Lines
  696.      beginning with a semi-colon are ignored.  The first entry in a line
  697.      is a Yell On time, the next is a Yell Off time and so on, each is
  698.      separated by a space and must be between 00:00 and 23:59.  The first
  699.      valid line will be Sunday, the second Monday etc.
  700.  
  701.      Example Yell.Ctl
  702.  
  703.      ;sunday
  704.      11:00 18:00
  705.      ;monday
  706.      10:00 17:30 19:30 23:00
  707.      ;tuesday
  708.      10:00 17:30 19:30 23:00
  709.      ;wednesday
  710.      10:00 12:30 13:30 17:30 19:30 23:00
  711.      ;thursday
  712.      10:00 17:30 19:30 23:00
  713.      ;friday
  714.      10:00 17:30 19:30 23:00
  715.      ;saturday
  716.      11:00 17:00
  717.  
  718.      In this example users will be able to yell on Sunday between 11am and
  719.      6pm, on Monday, Tuesday, Thursday and Friday between 10am and 5:30pm
  720.      and again between 7:30pm and 11pm, on Wednesday between 10am and
  721.      12:30pm, 1:30pm and 5:30pm and again between 7:30pm and 11pm.
  722.      FInally on Saturday between 11am and 5pm.
  723.  
  724.      To give complete control to this system you will need to set the yell
  725.      times in the SBBS config to 00:00 - 24:00 on all days.
  726.  
  727.      VIEW BBSLIST FILE
  728.      ─────────────────
  729.      Usage: BBSLIST [list file]
  730.  
  731.      Displays the given BBSLIST file.  If no file name is given,
  732.      BBSLIST.BBS is used.  The file name can be anything.
  733.  
  734.      ═════════════════════════════════════════════════════════════════════
  735.                                FILES BASE
  736.      ═════════════════════════════════════════════════════════════════════
  737.  
  738.      SUPER BBS DOWNLOAD COUNTER
  739.      ────────────────────────
  740.      Usage: SCOUNT <logpath>
  741.             {logpath = path & name of SBBS log}
  742.  
  743.      Updates the download counters in your FILES.BBS files according to
  744.      entries in the Super BBS log file.  Specify the complete path, file
  745.      name and extension of the log on the command line.  This function may
  746.      barf the first time you use it on a log file greater than around 1
  747.      MB.  You will need to trim the log until scount works. After that the
  748.      size is not important.
  749.  
  750.      BIMODEM DOWNLOAD COUNTER
  751.      ────────────────────────
  752.      Usage: BIMCOUNT <logpath>
  753.             {logpath = path & name of BiModem log}
  754.  
  755.      Updates the download counters in your FILES.BBS files according to
  756.      entries in the BiModem log file.  Specify the complete path, file
  757.      name and extension of the BiModem log on the command line.  This
  758.      function may barf the first time you use it on a log file greater
  759.      than around 1 MB.  You will need to trim the log until bimcount
  760.      works. After that the size is not important.
  761.  
  762.      FRONT DOOR DOWNLOAD COUNTER
  763.      ───────────────────────────
  764.      Usage: FDCOUNT <logpath>
  765.             {logpath = path & name of log}
  766.  
  767.      Updates the download counters in your FILES.BBS files according to
  768.      entries in the Front Door log file.  Specify the complete path, file
  769.      name and extension of the FD log on the command line.  This function
  770.      may barf the first time you use it on a log file greater than around
  771.      1 MB.  You will need to trim the log until fdcount works.  After that
  772.      the size is not important.
  773.  
  774.      DBRIDGE DOWNLOAD COUNTER
  775.      ────────────────────────
  776.      Usage: DBCOUNT <logpath>
  777.             {logpath = path & name of log}
  778.  
  779.      Updates the download counters in your FILES.BBS files according to
  780.      entries in the DBridge log file.  Specify the complete path, file
  781.      name and extension of the DB log on the command line.  This function
  782.      may barf the first time you use it on a log file greater than around
  783.      1 MB.  You will need to trim the log until dbcount works.  After that
  784.      the size is not important.  Because DBridge doesn't specify the full
  785.      path in it's log, all files with a name given in the log will be
  786.      updated.
  787.  
  788.      PORTAL OF POWER DOWNLOAD COUNTER
  789.      ────────────────────────────────
  790.      Usage: POPCOUNT <logpath>
  791.             {logpath = path & name of log}
  792.  
  793.      Updates the download counters in your FILES.BBS files according to
  794.      entries in the Portal Of Power log file.  Specify the complete path,
  795.      file name and extension of the log on the command line.  This
  796.      function may barf the first time you use it on a log file greater
  797.      than around 1 MB.  You will need to trim the log until popcount
  798.      works. After that the size is not important.
  799.  
  800.      MAKE MASTER FILES LISTS
  801.      ───────────────────────
  802.      Usage: LISTS <masterlist> <newlist> <security> <days>
  803.             {masterlist = name of master list to create}
  804.             {newlist    = name of new files list to create}
  805.             {security   = file area security to include}
  806.             {days       = days to include in new files}
  807.  
  808.      Creates a master files list and a new files list of all file areas
  809.      including only those areas with security equal to or less than that
  810.      specified.  Will include at the top of both lists, the contents of a
  811.      file BANNER.TXT if found in the SUtil home directory.  SUtil reads
  812.      the default.lng file or any language file found in the system
  813.      directory to get the string for files not found. The new files list
  814.      includes files in the security allowed areas that are equal to or
  815.      younger than that specified.
  816.  
  817.      FILES BASE INFORMATION
  818.      ──────────────────────
  819.      Usage: FILES
  820.  
  821.      Generates useful information regarding your files base.  Reports
  822.      totals in each area for files listed, files on-line, total size in
  823.      bytes, new files, files off-line and downloads and totals for all
  824.      areas.  The new files is controlled by the date stamp of the ANNOUNCE
  825.      file found in the sutil home directory.  If it is not found it is
  826.      created.
  827.  
  828.      SORT FILES
  829.      ──────────
  830.      Usage: SORTFILES <files dir|ALL>
  831.  
  832.      Sorts the files.bbs file listed for the files directory you specify.
  833.      To sort the files list for the Telix directory, type: SUTIL SORTFILES
  834.      TELIX.  SUTIL will search the FLSEARCH file for the directory and
  835.      list name to sort.  So far this function will work on lists that have
  836.      multiple description lines but will NOT work on lists that have
  837.      sub-headings scattered through the list.  It should keep you amused
  838.      for hours trying to piece it back together.
  839.  
  840.      PACK FILES LISTS
  841.      ────────────────
  842.      Usage: PACKFILES <files dir|ALL>
  843.  
  844.      Removes file description from files lists for any file that cannot be
  845.      found on the disk.  Specify the directory or ALL to scan all areas.
  846.      SUtil will search the FLSEARCH file for the directory and list name
  847.      to pack.  Will also remove any extra descriptions following a missing
  848.      file entry.
  849.  
  850.      ADD UNLISTED FILES
  851.      ──────────────────
  852.      Usage: ADDFILES <files dir|ALL>
  853.  
  854.      Adds a new file description for any file found in the given area that
  855.      is not already listed.  Specify the directory or ALL to scan all
  856.      areas.  SUtil will search the FLSEARCH file for the directory and
  857.      list name to process.
  858.  
  859.      HURL FILES
  860.      ──────────
  861.      Usage: HURL <Source> <Destination> [SORT]
  862.             {Source      = area directory and files}
  863.             {Destination = area directory}
  864.             {sort        = optionally sort the destination list}
  865.  
  866.      Hurls one or more files and descriptions anywhere within your defined
  867.      files base.  No need to type in the whole path, just the file's own
  868.      directory and file name and the destination directory.  For example
  869.      if a user has just uploaded HOST44.ZIP and you want to put it in the
  870.      TELIX directory, type the following:
  871.  
  872.      SUTIL HURL UPLOADS\HOST44.ZIP TELIX
  873.  
  874.      This might translate to:
  875.  
  876.      From: C:\SUPERBBS\FILES\UPLOADS\HOST44.ZIP
  877.      To:   C:\SUPERBBS\FILES\TELIX\HOST44.ZIP
  878.  
  879.      or whatever is configured in your flsearch.bbs file.  If the file
  880.      can't be found then just the description will be hurled.  If neither
  881.      the file or the description can be found then no action will be
  882.      taken.
  883.  
  884.      To automatically sort the destination list after the hurl then
  885.      include the keyword SORT as the last word on the command line. For
  886.      eg:
  887.  
  888.      SUTIL HURL UPLOADS\HOST44.ZIP TELIX SORT
  889.  
  890.      You can specify multiple source files to hurl.  For example, a user
  891.      has just uploaded the Telix package in three files which you want to
  892.      hurl to the Telix area.
  893.  
  894.      SUTIL HURL UPLOADS\TLX315-1.ZIP TLX315-2.ZIP TLX315-3.ZIP TELIX SORT
  895.  
  896.      This will hurl all three files from the Uploads area to the Telix
  897.      area and sort the Telix list when done.
  898.  
  899.      Or alternatively, you can use wild cards such as the following:
  900.  
  901.      SUTIL HURL UPLOADS\TLX315*.* TELIX SORT
  902.  
  903.      or even:
  904.  
  905.      SUTIL HURL UPLOADS\TLX315-?.ZIP TELIX SORT
  906.  
  907.      LOCAL FILE ATTACH
  908.      ─────────────────
  909.      Usage: ATTACH <user> <file> [description]
  910.             {user        = User to receive file}
  911.             {file        = File to send}
  912.             {description = Description of file to send}
  913.             {Use underscores instead of spaces in user name and description}
  914.  
  915.      This function allows you to do a local file attach to a user at the
  916.      dos prompt or maybe do daily file attaches to co-sysops from the
  917.      daily maintenance.  Gets the file attach directory from the
  918.      SCONFIG.BBS file and checks that the user exists in the user base.
  919.      The description is optional.  When you type the user name and the
  920.      description you must use underscore characters in place of spaces.
  921.      SUtil will replace them as it works.  This is not necessary if
  922.      working from the environment.
  923.  
  924.      ANNOUNCE NEW FILES
  925.      ──────────────────
  926.      Usage: ANNOUNCE <board> [exclude file]
  927.             {board = message area to post announcement}
  928.             {exclude file = text file with paths/files to exclude}
  929.  
  930.      Creates a message describing new files on the system.  Initially,
  931.      this function will create a zero length file called "announce" in the
  932.      'home' directory of SUtil.  This is used to remember the last date
  933.      that this function was run, so that the next time it is run it will
  934.      compare file dates against this date to decide which is new.  Each
  935.      successive time it is run it will update the date on this file.  This
  936.      way you can run it daily, weekly or whenever you like and it will
  937.      catch all the new files since the last time it was run.  To alter the
  938.      last date simply alter the date on this file or delete it altogether
  939.      to start again from today.
  940.  
  941.      The optional exclude file is a text file listing paths and/or files
  942.      you wish to exclude from the new files announcement.  The paths must
  943.      have a trailing backslash.  Comments must start with a semi-colon
  944.      (;).  For example:
  945.  
  946.      ;exclude file for announce function
  947.      c:\superbbs\files\uploads\
  948.      c:\superbbs\files\private\
  949.      c:\superbbs\files\rough\rough.zip
  950.  
  951.  
  952.      CREATE FREQ DIRECTORY LIST
  953.      ──────────────────────────
  954.      Usage: FRDIRS <file> <sec>
  955.             {file = file to create containing freq directories}
  956.             {sec  = security of files areas to include in list}
  957.  
  958.      Creates a text file containing full paths to your files area
  959.      including areas of specified security or lower.  This file is used,
  960.      for example, by Front Door to search for file requested files.  For
  961.      example:
  962.  
  963.      SUTIL FRDIRS C:\FD\DIRS.FRQ 5
  964.  
  965.  
  966.      SEARCH FILES LISTS
  967.      ──────────────────
  968.      Usage: SEARCHFILES <search string>
  969.             {search string = any combination of characters to look for}
  970.  
  971.      Searches all files.bbs files for the given search string and reports
  972.      any areas it was found in.  Case not sensitive.
  973.  
  974.      SORT FILES AREA CONFIG
  975.      ──────────────────────
  976.      Usage: SORTFLSEARCH <mode>
  977.             {mode = N = Area Name}
  978.             {       A = Ascending security}
  979.             {       D = Descending security}
  980.  
  981.      Sorts the files area config file according to the mode specified.
  982.      The mode can be stacked.  For example SORTFLSEARCH NA will sort by
  983.      area name and then by ascending security.  Think in reverse when
  984.      stacking the sort mode.  For example if the first priority is
  985.      security, it should be the last entry in the sort mode.
  986.  
  987.      ═════════════════════════════════════════════════════════════════════
  988.                               MESSAGE BASE
  989.      ═════════════════════════════════════════════════════════════════════
  990.  
  991.      POST FILE TO MESSAGE
  992.      ────────────────────
  993.      Usage: POST <board> <file> <to> <from> <subject> [/D]
  994.             {board     = message base board number}
  995.             {file      = text file to post}
  996.             {to        = who is message addressed to}
  997.             {from      = who is message from}
  998.             {subject   = message subject}
  999.             {/D        = optionally delete file after posting}
  1000.  
  1001.      Works similar to many mail tossing programs.  Allows you to post a
  1002.      text file as a message to the hudson message base.  Specify each
  1003.      parameter separated by a space.  For the parameters that might have
  1004.      multiple words (to,from,subject) use the underscore character instead
  1005.      of spaces.  If you include the /D parameter after the subject
  1006.      parameter the file will be deleted after posting.
  1007.      
  1008.      TWIT
  1009.      ────
  1010.      Usage: TWIT </Ffrom|/Ssubject|@file>
  1011.             {from    = person who's messages to delete}
  1012.             {subject = subject text to look for}
  1013.             {file    = text file with twit specs}
  1014.  
  1015.      Marks as deleted any messages written by a particular person or any
  1016.      messages with the given text included in the subject.  Use only one
  1017.      of either the person, subject or specification file on the command
  1018.      line.  For example:
  1019.  
  1020.      TWIT /FGlenn Delahoy
  1021.  
  1022.      Will delete any messages from Glenn Delahoy.
  1023.  
  1024.      TWIT /Stest
  1025.  
  1026.      Will delete any messages that have 'test' included in the subject
  1027.      line.
  1028.  
  1029.      TWIT @sutil.twt
  1030.  
  1031.      Will read the text file 'sutil.twt' to get the specifications.  The
  1032.      spec file has one spec per line, each starting with either /F or /S
  1033.      for the From field or the Subject field.  It is not case sensitive
  1034.      and does not need underscores.  A sample spec file is enclosed.
  1035.  
  1036.      CLEAN MESSAGE HEADERS
  1037.      ─────────────────────
  1038.      Usage: CLEANMSG
  1039.  
  1040.      Scans message base headers and removes any 're:' bits from the
  1041.      subject field.
  1042.  
  1043.      MESSAGE BASE REPORT
  1044.      ───────────────────
  1045.      Usage: BOARDS
  1046.  
  1047.      Scans message base headers and reports total messages, number of
  1048.      local messages, number of received incoming messages, number of
  1049.      active users, total size in bytes and average message size for each
  1050.      area.
  1051.  
  1052.      The number of active users for each area is based on the number of
  1053.      users whose extended lastread pointer is greater than or equal to the
  1054.      lowest message number for that area.
  1055.  
  1056.      ═════════════════════════════════════════════════════════════════════
  1057.                                   DOORS
  1058.      ═════════════════════════════════════════════════════════════════════
  1059.  
  1060.      This set of functions maintains and reports door usage.  Useful for
  1061.      determining the popularity, or lack of, of your on-line doors.  This
  1062.      has only been tested with SBBS 1.16b.  In this version there is a
  1063.      little spare room in the door templates which may be used by Aki in
  1064.      later versions.
  1065.  
  1066.      UPDATE DOOR COUNTER
  1067.      ───────────────────
  1068.      Usage: DOORUPDATE <door>
  1069.             {door =  door template number}
  1070.  
  1071.      Updates the door counter for the given door template number.  Insert
  1072.      this into your doors batch file after each door exits and before the
  1073.      bbs restarts.  Eg:
  1074.  
  1075.      SUTIL DOORUPDATE 14
  1076.  
  1077.      This adds one to the counter for door number 14 in the template.
  1078.  
  1079.      RESET DOOR COUNTER
  1080.      ──────────────────
  1081.      Usage: DOORRESET <door>
  1082.             {door =  door template number or ALL}
  1083.  
  1084.      Resets the door counter for the given door template number to 0.  If
  1085.      you remove a door from the bbs or replace it with a new one you will
  1086.      want to reset it's template counter to get an accurate picture of
  1087.      it's popularity.  Eg:
  1088.  
  1089.      SUTIL DOORRESET 14
  1090.  
  1091.      To reset all doors to 0 type:
  1092.  
  1093.      SUTIL DOORRESET ALL
  1094.  
  1095.      DOORS REPORT
  1096.      ────────────
  1097.      Usage: DOORREPORT
  1098.  
  1099.      Reports config for all active doors.
  1100.  
  1101.      CREATE GRAPHS OF DOOR COUNTERS
  1102.      ──────────────────────────────
  1103.      Usage: DOORGRAPH
  1104.  
  1105.      Creates ANS/ASC graphs of the door counters in the text directory.
  1106.      Only includes active doors.  If you have more than 22 active doors
  1107.      then it will create multiple graphs.  The first will be called
  1108.      DOORGR1.ASC/ANS, the second will be DOORGR2.ASC/ANS etc. for as many
  1109.      screens as is required.
  1110.  
  1111.      CHANGE DORINFO BAUD SETTING
  1112.      ───────────────────────────
  1113.      Usage: DOORBAUD <dorinfo> <new baud>
  1114.             {dorinfo  = full path/file name to dorinfo file}
  1115.             {new baud = new baud rate to insert}
  1116.  
  1117.      Changes the baud rate setting in the specified dorinfo file to the
  1118.      new setting given by <new baud>.  This is useful for doors that don't
  1119.      recognise a locked port and try to communicate at the connect speed.
  1120.      This is the case for most Mycroft doors I have tried.  For example if
  1121.      you have your com port locked at 19200 and a door doesn't like it,
  1122.      try the following:
  1123.  
  1124.      SUTIL DOORBAUD dorinfo1.def 19200
  1125.  
  1126.      This tells the door to communicate at 19200 instead of whatever SBBS
  1127.      thinks it is.
  1128.  
  1129.  
  1130.      ═════════════════════════════════════════════════════════════════════
  1131.                              MISCELLANEOUS
  1132.      ═════════════════════════════════════════════════════════════════════
  1133.  
  1134.      SYSTEM INFORMATION
  1135.      ──────────────────
  1136.      Usage: INFO
  1137.  
  1138.      Generates a page of useful general information relating to your BBS
  1139.      and it's users.
  1140.  
  1141.      RENAME FILE TO TODAY'S DATE
  1142.      ───────────────────────────
  1143.      Usage: DATEFILE <file>
  1144.             {file = file to be renamed to today's date}
  1145.  
  1146.      Renames the specified file using today's date in the format
  1147.      yy-mm-dd.ext.  For example to rename the system log type:
  1148.  
  1149.      SUTIL DATEFILE \SUPERBBS\SYSTEM.LOG
  1150.  
  1151.      The resulting file would be:
  1152.  
  1153.      \SUPERBBS\92-05-30.LOG
  1154.  
  1155.      ... or whatever the date happens to be.  The reason for the
  1156.      particular format for the date is when Xtree or other such programs
  1157.      list the files in alphabetical order these files will show up in the
  1158.      correct chronological order.  Here's a little segment of my daily
  1159.      maintenance batch file that makes a daily backup of the user base.
  1160.  
  1161.      cd \superbbs
  1162.      pkzip \superbbs\backup\userbak lastread.bbs nameidx.bbs users.bbs susers.bbs
  1163.      sutil datefile \superbbs\backup\userbak.zip
  1164.  
  1165.      If the file name it wants to use to rename the file already exists it
  1166.      will attempt to rename the extension until it finds an unused file
  1167.      name.
  1168.  
  1169.      CREATE FILE REQUEST MESSAGE IN NETMAIL DIRECTORY
  1170.      ────────────────────────────────────────────────
  1171.      Usage: FREQ <attrib> <address> <files>
  1172.             {attrib  = netmail attribute}
  1173.             {address = full zone:net/node address}
  1174.             {files   = one or more files to request}
  1175.  
  1176.      Creates a file request MSG in your netmail directory as specified in
  1177.      your SBBS config.  Each file should be separated by an underscore.
  1178.      The msg packet attributes are set as specified by the 'attrib'
  1179.      parameter.
  1180.  
  1181.              Valid netmail attributes:
  1182.              P = private     C = crash
  1183.              K = kill        H = hold
  1184.              D = direct      I = immediate
  1185.              N = none
  1186.  
  1187.      This function can be used by your callers via a questionnaire, two
  1188.      menu options and a batch file.  For eg:
  1189.  
  1190.      Type  Options
  1191.       12   FREQ
  1192.        7   *C /c makefreq.bat
  1193.  
  1194.      MAKEFREQ.BAT
  1195.      del freq.bat
  1196.      ren freq.asw freq.bat
  1197.      call freq.bat
  1198.  
  1199.      The questionnaire creates the freq.asw file which is renamed to a
  1200.      batch file then called to fire sutil to create the file request.
  1201.      Tricky stuff!  O-)  A sample questionnaire is enclosed.
  1202.  
  1203.      CREATE FILE ATTACH MESSAGE IN NETMAIL DIRECTORY
  1204.      ───────────────────────────────────────────────
  1205.      Usage: FATT <attrib> <address> <file>
  1206.             {attrib  = netmail attribute}
  1207.             {address = full zone:net/node address}
  1208.             {file    = file to attach}
  1209.  
  1210.      Creates a file attach MSG in your netmail directory as specified in
  1211.      your SBBS config.  The msg packet attributes are set as specified by
  1212.      the 'attrib' parameter.  Only one file at a time on this one.
  1213.  
  1214.              Valid netmail attributes:
  1215.              P = private     C = crash
  1216.              K = kill        H = hold
  1217.              D = direct      I = immediate
  1218.              N = none
  1219.  
  1220.      RUN SCRIPT FILE
  1221.      ───────────────
  1222.      Usage: AUTO <scriptfile>
  1223.             {scriptfile = full path & extension}
  1224.  
  1225.      Performs the commands contained in the specified script file. Each
  1226.      line of the file should have one command typed exactly how you would
  1227.      normally type it on the DOS command line, minus the SUTIL bit of
  1228.      course.  Any line beginning with a semi-colon (;) is treated as a
  1229.      remark and is ignored.  From within a script file you can call
  1230.      another script file much the same way that DOS can call a batch file
  1231.      from within a batch file.  When it has finished the embedded script
  1232.      file, it returns and continues on the first one.  A sample script
  1233.      file is enclosed.
  1234.  
  1235.      Individual items in a script can be redirected to an output file
  1236.      using the normal dos redirection characters for append and create.
  1237.      For example:
  1238.  
  1239.      ;sutil sample script
  1240.      INFO >SUTIL.LOG
  1241.      UPGRADE SUTIL.UPG >USERS.LOG
  1242.      FILES >>SUTIL.LOG
  1243.      SORT LID >>USERS.LOG
  1244.      CALLERS
  1245.  
  1246.      In this script the output from INFO is sent to a new file called
  1247.      SUTIL.LOG, the output from UPGRADE is sent to a new file called
  1248.      USERS.LOG, the output from FILES is appended to the file called
  1249.      SUTIL.LOG, the output from SORT is appended to the file called
  1250.      USERS.LOG, the output from CALLERS is sent to the screen only.
  1251.  
  1252.  
  1253.      ═════════════════════════════════════════════════════════════════════
  1254.                                   ERRORS
  1255.      ═════════════════════════════════════════════════════════════════════
  1256.      Well, no one's perfect O-)  Here's a list of errors likely to occur
  1257.      during an SUtil session and possible causes.  If the error persists
  1258.      please see your doctor, or failing that tell me!  It will be a help
  1259.      if you can send me any relevant files SUtil was reading when it
  1260.      crashes and a screen capture of the SUtil output, makes for quick
  1261.      fixes if I know the exact situation.
  1262.  
  1263.       5     Illegal function call
  1264.             Probably attempting to extract data from a text file
  1265.             (logs,files.bbs?) and came across unexpected text.
  1266.  
  1267.       6     Overflow
  1268.             Variable data has gone unexpectedly high.
  1269.  
  1270.       7     Out of memory
  1271.             You need to find more memory for SUtil to work with.
  1272.  
  1273.       9     Subscript out of range
  1274.             Possibly a corrupted data file.
  1275.  
  1276.      11     Division by zero
  1277.             Possibly a corrupted data file or invalid command parameters.
  1278.  
  1279.      14     Out of string space
  1280.             The data you want to manipulate is too large.
  1281.             
  1282.      24     Device timeout
  1283.             Some hardware device is not responding. Check your connections.
  1284.  
  1285.      25     Device fault
  1286.             Some hardware device is not responding. Check your connections.
  1287.  
  1288.      52     Bad file name or number
  1289.             Incorrect command line parameters or more likely shocking
  1290.             programming techniques O-)
  1291.  
  1292.      53     File not found
  1293.             Incorrect path or file name.
  1294.  
  1295.      57     Device I/O error
  1296.             Your disk is not responding.  You got problems!  O-)
  1297.  
  1298.      58     File already exists
  1299.             Try a different file name.
  1300.  
  1301.      59     Bad record length
  1302.             Possibly corrupted data file.
  1303.  
  1304.      61     Disk full
  1305.             Time to buy that big disk O-)
  1306.  
  1307.      62     Input past end of file
  1308.             Possibly corrupt file.
  1309.  
  1310.      63     Bad record number
  1311.             Corrupt data file (Susers.bbs, message base ??).
  1312.  
  1313.      64     Bad file name
  1314.             Incorrect command line parameter.
  1315.  
  1316.      68     Device unavailable
  1317.             Disk system malfunctioning (uh oh!)
  1318.  
  1319.      70     Permission denied
  1320.             Some other process is using a file.  Close other processes
  1321.             before trying again.
  1322.  
  1323.      71     Disk not ready
  1324.             Check your disk drive.
  1325.  
  1326.      72     Disk-media error
  1327.             Damaged disk surface or corrupted format.
  1328.  
  1329.      75     Path/File access error
  1330.             Invalid path or disk not ready.
  1331.  
  1332.      76     Path not found
  1333.             Directory doesn't exist.
  1334.  
  1335.  
  1336.      ═════════════════════════════════════════════════════════════════════
  1337.                                REGISTRATION
  1338.      ═════════════════════════════════════════════════════════════════════
  1339.      This program is not crippled in any way.  The choice is entirely
  1340.      yours to register it.  Registration is $25 and you will receive the
  1341.      latest version with your name nicely displayed in the opening screen
  1342.      and lists.  Call Rough Productions BBS and download the latest
  1343.      evaluation version or file request SUTIL from 3:635/572@Fidonet.
  1344.  
  1345.      I can also be reached via the SUPERBBS International FidoNet echo.
  1346.  
  1347.      If you wish you can contact me direct at Rough Productions.  Send a
  1348.      Crash netmail to Rough Productions Australia, Fidonet 3:635/572,
  1349.      telephone 61-059-98-3639. Poll again 24 hours later for a reply.
  1350.  
  1351.  
  1352.      ═════════════════════════════════════════════════════════════════════
  1353.                              ACKNOWLEDGEMENTS
  1354.      ═════════════════════════════════════════════════════════════════════
  1355.      My sincerest thanks to the fabulous d00ds on the beta team:
  1356.  
  1357.      Jonathan Holmes     Limited Edition       3:635/570   61-3-794-6996
  1358.      Tom Steiszkal       Pat's Place.....      3:633/354   61-3-354-8462
  1359.      Marcus Limosani     The Infinity Links    3:633/262   61-3-850-9115
  1360.      Nick Varvaris       Colossus Of Rhodes    3:633/356   61-3-376-4683
  1361.  
  1362.      I hope your patience has been rewarded.
  1363.  
  1364.  
  1365.      ═════════════════════════════════════════════════════════════════════
  1366.                               REVISION NOTES
  1367.      ═════════════════════════════════════════════════════════════════════
  1368.      0.15 Beta release.
  1369.      0.16 Removed download counter, SBBS one works more or less. Added
  1370.           LASTREAD.BBS consideration to RECOVER.  Added AUTO option.
  1371.           Added ANSI overview screen.
  1372.      0.17 Streamlined INFO function and added FILES function.  Still
  1373.           expanding that one.  Added PAMS2BBS function.
  1374.      0.18 Added ALIAS function.
  1375.      0.19 In RECOVER, the extra user pointer is set to -1.  Moved the
  1376.           CLEAN USERS routine into the sort routine.  In HURL, added
  1377.           code to allow files to be hurled to a different disk.  Also if
  1378.           the file can't be found then the description will be hurled.
  1379.      0.20 Added SORTFILES function.  Feedback on this in particular
  1380.           please.  Added PLAY function.  Added SORT option to HURL
  1381.           function.
  1382.      0.21 The SORTFILES function now sorts a list with multiple
  1383.           description lines but will NOT sort a list with multiple
  1384.           sub-headings.
  1385.      0.22 Overview files are now created directly in the text directory.
  1386.           Added CALLERS option to put the last caller into the FD
  1387.           inbound history file.  Fixed buglet in bimodem counter.
  1388.      0.23 Added NODE2BBS function.
  1389.      0.24 Fixed problem with NODE2BBS.
  1390.      0.25 Added USERLIST function.
  1391.      0.26 Added RATIOK to USERLIST function. This gives a ratio of
  1392.           downloads to uploads in KB's. Changed MESSAGES to MSGS in
  1393.           USERLIST.  Is a little more forgiving to mistakes in
  1394.           FILES.BBS.  Added ATTACH function.
  1395.           1.16 compatible: Fixed LISTS to cure SBBS's uploads path in
  1396.           the list name field in FLSEARCH.BBS.  Corrected CALLERS
  1397.           routine for new SCALLERS.BBS.  Both the user pack and sort
  1398.           routines now create the NAMEIDX.BBS file.
  1399.      0.27 Added NEW option to files base report.  Added FDCOUNT option.
  1400.           Added code to check for sufficient disk space before packing
  1401.           user base O-(.  Fixed unsigned integer problem in user list
  1402.           and system info.  Added '*' for new files in master files
  1403.           list.  Corrected chronic problem with user sort and creation
  1404.           of NAMEIDX.BBS file in the user sort routine.  Added UPGRADE
  1405.           feature.
  1406.      0.28 Enlarged FDCount arrays, hopefully won't have memory problems.
  1407.           Fixed 'incomplete' xfers in FDCount. In LISTS option, removed
  1408.           the <notfound> parameter, now reads the default language file
  1409.           in the system directory.  See above. Removed overview file
  1410.           from LISTS, will go into SBEST.  Also fiddled with LISTS a
  1411.           bit. Added POST, ANNOUNCE and TWIT options.
  1412.      0.29 Changed name of NEWS to NODENEWS.  It now posts the news
  1413.           directly to a message board of your choice.  See above. Added
  1414.           SUTIL environment variable, see above.  Added HIDELOCAL
  1415.           function.  Added CLEANMSG function.  Added TRIMLOG function.
  1416.           Expanded user sort function to about 500 or so records.  Added
  1417.           memory test to user sort and available disk space test to
  1418.           alias functions.  Added DATEFILE function.  Added /D option to
  1419.           POST function.
  1420.      0.30 TRIMLOG function hopefully a little more forgiving.  Overlayed
  1421.           help and list functions to improve memory availability.
  1422.      0.31 Added code to check for disk ready.  Added Doors options.  Added
  1423.           FRDIRS function.
  1424.      0.32 Added LostCarrier option.
  1425.      0.33 Added FREQ function.
  1426.      0.34 Fixed a few problems with the door counter and graph.  Added
  1427.           reset function to door counter.  Fixed problem with datefile and
  1428.           existing file names.  Now searches for FLSEARCH in the line
  1429.           directory first then in the system directory.  Fixed wrong
  1430.           directory reading msginfo in System Info.
  1431.      0.35 LOSTCARRIER function adds entry to system log to avoid
  1432.           duplicating messages to users.  Fixed date/time problem posting
  1433.           messages.  Added FINDUSERS function.  Added global error
  1434.           checking, now it won't say 'Press any key ...'  O-)
  1435.      0.36 POST function now sets the 'echomail unsent' attribute. Fiddled
  1436.           with 'free disk space' routine. Fixed SORTFILES zero length
  1437.           file.  Changed TWIT function commands, see above.  Added subject
  1438.           to TWIT function.  Fixed problem with msgtxt size in POST
  1439.           function.
  1440.      0.37 Fixed buglet with Hurl in auto file.  Added PACKFILES function.
  1441.           Added Front Door 2.10 multi-line capability to the CALLERS
  1442.           function, see new command line above.  Added BOARDS function.
  1443.           Fixed a number of problems with FDCOUNT & BIMCOUNT.  20% speed
  1444.           improvement in files functions.  Writes to the screen even if
  1445.           being redirected.  Fixed long area names in LISTS.
  1446.      0.38 Further 25% speed improvement in files functions.  Altered the
  1447.           way the TWIT function works, see above for new command line.  It
  1448.           now includes a spec file and no longer uses the underscore
  1449.           character.  Found a possibly fatal problem with the TWIT
  1450.           function deleting already deleted messages.  Found possible bug
  1451.           in files routine and ANNOUNCE function.  Increased memory to
  1452.           FDCOUNT and BIMCOUNT to work with bigger log files.  SORT should
  1453.           now be able to do well over 4,500 user records.  Increased
  1454.           capacity of ASWPACK & SORTFILES functions.  Fixed bug with
  1455.           POST/ANNOUNCE etc posting to large message base.  TWIT now
  1456.           shares the message base correctly.
  1457.      0.39 Added HIGHMSG function.  Added FDCALLERS function.  Fixed bug in
  1458.           ANNOUNCE function.
  1459.      0.40 Rearranged door counter functions and added ability to reset a
  1460.           single door, see above.  Added SEARCHUSERS & RESETCOLORS
  1461.           functions. Can now run embedded script files, see above.  Added
  1462.           DBCOUNT function.  New files base report.  Added security option
  1463.           to global flag set/reset and global attribute set/reset.  Added
  1464.           'exclude file' option to ANNOUNCE function.  Fixed problem with
  1465.           door graph with more than 24 doors, see above.  The file name is
  1466.           changed from DOORGRPH to DOORGR? for as many screens as it
  1467.           needs.  Added FATT function, see above.  Any ANS/ASC files will
  1468.           be created in text directory specified in the default (or other)
  1469.           language file, see above.  Added DOORBAUD function.  New
  1470.           parameters for KILL function, please read the appropriate
  1471.           section BEFORE running.  Ugh! found a rather silly but fatal bug
  1472.           in the RECOVER function.  Extended file descriptions in ANNOUNCE
  1473.           function.  Rearranged UPGRADE function and added calls
  1474.           parameter, see above.  Fixed conflict between CALLERS/FDCALLERS.
  1475.           All new menu driven environment.  Adds about 80K to the size of
  1476.           the exe but because of the overlays, it does not affect memory
  1477.           availability.  Added TMP environment variable.  Added 'combined
  1478.           mail check' and 'no hotkeys' to GAR/GAS.  Added NOT keyword to
  1479.           FINDUSERS function.
  1480.      0.41 Fixed problem with weird DOS displays.  Extended file
  1481.           descriptions in new files list.  BANNER.TXT must be in the SUtil
  1482.           home directory.  Added area number to files base report.  Added
  1483.           netmail attribute parameters to the FATT and FREQ functions.
  1484.           Multiple files in the FREQ function must now be separated by
  1485.           underscores.  Added LCALIAS function.  Added LIMITS function.
  1486.           Added age, msgs and calls to user sort function.  SysOps will go
  1487.           to the top of the user base, see above.  Added SETYELL function.
  1488.           Gives up idle time to DV in the environment.  Fixed ANNOUNCE bug
  1489.           and probably a few others in the process.  Functions in a script
  1490.           can now be individually redirected, see above.  Fixed disk size
  1491.           figure in 'About SUtil'.  Added SEARCHFILES function.
  1492.      0.42 Download counters now follow the download counter digits set in
  1493.           the config.  Cleaned up master files list summaries.  HURL
  1494.           function now retains file date/time.  HURL can now handle
  1495.           multiple source files as well as wild cards, see above.  Added
  1496.           COMMENT function.  Added ADDFILES function.  Added BBSLIST
  1497.           function.  Language config now follows SBBS procedures more
  1498.           closely, see above.  LOSTCARRIER now updates a counter in the
  1499.           user files, see above.  Added CARRIERREPORT and CARRIERRESET
  1500.           functions.  Added SCount function.  Modified DOORREPORT to
  1501.           include config information. Report viewer handles larger files
  1502.           and added search function. Command line help has been taken from
  1503.           the exe into an external text file.  The old help file,
  1504.           SUTIL.HLP, is no longer needed. You should have SUTIL.H01 and
  1505.           SUTIL.H02 help files.  Added POPCOUNT function.
  1506.      0.43 SBBS 1.17 update.  Removed LCALIAS function, no longer required.
  1507.           Altered CALLERS, FDCALLERS and HIDELOCAL to use new format
  1508.           CALLERS.BBS.  Files functions now maintain file date stamp
  1509.           (hopefully got them all!).  Added KILLCOMMS and SORTFLSEARCH
  1510.           functions.  Added 'users' field to BOARDS function.
  1511.      0.44 Fixed nasty bug with files.bbs date/time stamp.  Adjusted doors
  1512.           functions to look for doorcfg.bbs in the line dir first then in
  1513.           the system dir.  Fixed bug in SORTFILES ALL routine.
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520.                           ┌─────────────────────────┐
  1521.                           │                         │
  1522.                           │    Rough Productions    │
  1523.                           │      Glenn Delahoy      │
  1524.                           │      P.O. Box 211       │
  1525.                           │ Narre Warren Vic., 3805 │
  1526.                           │ BBS: 059 983 639 (V32)  │
  1527.                           │   FidoNet: 3:635/572    │
  1528.                           │                         │
  1529.                           └─────────────────────────┘
  1530.  
  1531.