
                             FPInstall
                             ~~~~~~~~~
                       Version 0.94 (7-Apr-95)

            © 1995 Henning Larsen/Flux Point Productions.
      
      
Introduction
~~~~~~~~~~~~

    Most CNet utilities has to be 'installed' in BBSTEXT and/or BBSMENU,
    which means changing or inserting lines in one or both of these files.
    Historically, this seems to be the thing, that gives the poor SysOps
    their greatest headaches - ONE little mistake, and NOTHING works....

    FPInstall (from here on referenced as 'FPI') is a util, that simplifies
    the installation of other utils (pfiles) in CNet's BBSTEXT and/or BBSMENU
    files.

    The intention with this program is, that a CNet developer can release the
    FPI util plus a special install-file (recognized by it's extension of
    '.FP_install') along with his/her own util, and thereby making the instal-
    lation process a LOT easier (and safer) for the end user.

    As an example, PMK's FPDIZ util requires no less than 28 changes in BBS-
    MENU (last time I checked), plus a couple of changes in BBSTEXT - even if
    the end user is an expert in CNet pfiles installation, it's still a lot
    to keep track of!

    With FPI, the user only has to tell FPI the path/name of the .FP_install
    file, and the path, where he has his BBSMENU/BBSTEXT files.... the rest
    is a breeze...

    As a unique feature, FPI can also UN-install the util later on, if you
    so wish (a file called <rootname>.FP_uninstall will be created, when you
    use the install-util) !!


System requirements
~~~~~~~~~~~~~~~~~~~

    CNet BBS 3.05c
    KickStart 37.175 (2.04) or higher.



COPYRIGHT
~~~~~~~~~

    This  software  is  subject to the "Standard Amiga FD-Software Copyright
    Note".  It is MAILWARE as defined in paragraph 4b (my address is listed at
    the end of this file).  For more information please read "AFD-COPYRIGHT"
    (Version 1 or higher).

    As stated in the "AFD-COPYRIGHT", this util is freely distributable, with
    ONE exeption:  If you develop CNet utilities of your own, and distribute
    them as ShareWare or commercial products, you MUST give me a free, regi-
    stered copy of your product, in order to gain permission to distribute
    FPInstall along with your own product.

    If your product is of any other (free, non-crippled) kind, you may distri-
    bute FPInstall along with it, without gaining my permission (but you MUST
    still send me mail ;-) - this goes for users as well as developers).



User (SysOp) Docs
~~~~~~~~~~~~~~~~~

    Installation:


    1)  Copy the BBSMENU/BBSTEXT files, that you wish to have modified, to
        a 'safe location' (such as RAM: or T:)

        This step is not REALLY neccesary, as FPI is a 'safe' util - it makes
        backups of your old bbstext/menu file(s), with the extension '.old',
        before generating the new files.  If a file called '<xx>.old' already
        exists, FPI will try with '.old1', '.old2' and so on.


    2)  Go to a CLI, and run the program, with the following arguments:

        FPInstall <install-file> <BBSTEXT/MENU_path>

        Let's say, that you unarc'ed the archive, with which FPI came, to RAM:
        and you've copied all your BBSTEXT and/or BBSMENU files to T: , then
        it should look like this:

        FPIinstall ram:FPDIZ.FP_install T:

        (where FPDIZ is the pfile to install)

        When FPI is finished, copy the new BBSTEXT/MENU files to CNET: (if you
        didn't work directly in CNET:).


    3)  Well, actually this is it! - your newly received util has succesfully
        been installed in BBSTEXT/MENU. You will, however, have to copy the
        actual pfile(s) to the location, which the maker of the util has sta-
        ted - FPI cannot do this for you, and was never intended to.



    UN-installation:


    1)  Follow the directions in item 1 of 'Installation'.


    2)  During the install process, a file with the extension .FP_uninstall
        was created.
        This file contains directions for FPI to undo the changes it has made.
        If FPI originally worked on more than one BBSTEXT/MENU file, seperate
        directions for each BBSTEXT/MENU file is listed.

        To start the un-installation process, you should do much as in item 2
        of 'Installation' only this time you should replace the name/path of
        the .FP_install file, with the .FP_uninstall file.

        Example:

        FPI <UN-install-file_path/name> <path_to_BBSTEXT/MENU_files>


IMPORTANT NOTE:
~~~~~~~~~~~~~~~

    DO NOT change the name (and especially not the postfix) of the install/
    uninstall file(s), as FPI distinguishes between these (and therefore,
    exactly WHAT it should do) on the basis of their name!

    Also, if you install several utils, that change the SAME lines in
    either of BBSTEXT or BBSMENU, REMEMBER to un-install these in REVERSE
    order of how you installed them (or do it manually)!

    Last, the format of your BBSMENU file(s) MUST follow these conventions:

        Alias'es MUST be put BEFORE any other commands in a menu (NOT at the
        end of a menu, as many believe(d) - including me ;-) ).

        New commands MUST be listed at the END of a menu.

    If you have followed these simple rules, everything should be OK!
    (And don't nag me about'em - it's CNet standard!)



If you don't develop utils of your own, the rest of this doc is probably
not very interesting, but read it if you want...


Installfile (developer) Docs
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    The Installfile can consist of two blocks, one for bbstext and one for
    bbsmenu. Each of these blocks are initiated by the word BBSTEXT#? or
    BBSMENU#? on an otherwise empty line. If you have install-entries for both
    bbstext and bbsmenu, the BBSTEXT#? block MUST come first!

    The wildcards (#?) ensures that all of the bbstext/menu files in the dir,
    that the user specifies, will be processed.
    It IS possible to specify f.i. BBSTEXT1, but in that case, ONLY the file
    called BBSTEXT1 will be processed.

    After the initiating line follows pairs of install-lines, that MUST come
    in sequence, and may NOT have blank lines in between.

      bbstext:
      ~~~~~~~~
      #<line-number>:<action>
      @<line-to-install>

      <action> can be one of the following:

        B  :  Install at beginning of destination line.
        E  :  Install at end of destination line.
        R  :  Replace line entirely.


      bbsmenu:
      ~~~~~~~~
      #<menu-number>:<action>                (actions A, D and N)
              or
      #<menu-number>:<action>:<cmd-number>   (actions B, E and R)
      @<line-to-install>

      <action> can be one of the following:

        A  :  Alias - line will be installed at the beginning of the specified
              menu.
        D  :  Delete - line (if found in source-file) will be removed from
              destination. Note that this works by comparing the lines byte
              by byte, and if ONE byte of the source-line has been changed,
              this action won't work. (mainly used in UNinstall-files)
        N  :  New - the line will be installed as the last line of the
              specified menu.

      The following actions need an extra argument, <cmd-number>, which
      indicates the number of the BUILT-IN command that should be affected:

        B  :  Install string at the beginning of the destination-line.
        E  :  Edit - append to the end of the destination-line.
        R  :  Replace entire line.


    Example:

  BBSTEXT#?             (Beginning of bbstext block)
  #1893:B               (Install the following line before any other text on
  @L1100645 1100451}    line 1893 of bbstext)
  #1993:R               (Replace line 1993 in bbstext with the following line)
  @L1100645 1100451}
  BBSMENU#?             (Beginning of bbsmenu block)
  #1:B:5                (Install the following in Menu#1, at the beginning of
  @| L1100645 1100451}  built-in command #5)
  #2:E:10               (Install the following in Menu#2, at the END of built-
  @| L1100645 1100451}  in command #10)
  #2:R:20               (Replace built-in command #20 in Menu#2, with the
  @¹¹EP                  following line.)
      .
      .


    Note, that everything MUST come in sequence! - That is;

    BBSTEXT:  Lines must be specified in sequence, lowest to highest

    BBSMENU:  Menu's must come in sequence, lowest to highest - in each menu,
              Alias'es comes first, then built-in commands (in sequence), and
              finally any new commands.



Author
~~~~~~

  If you have any questions, suggestions, ...  then contact me.

          Henning "Stonehead" Larsen
          Ny Carlsbergvej 9 4 tv.
          1760 Copenhagen V.
          Denmark

          EMail:     FIDO 2:235/84.14
                    CLINK 912:2000/4.14
                 AMIGANET 39:141/139.14

  or leave mail to user: "Stonehead" on our BBS.

          Support BBS: Flux Point Amiga BBS  +45 3526-2527
                               24 H - 16k8 USR DS

                                  SysOp: PMK

          EMail:     FIDO 2:235/202.0
                    CLINK 912:2000/4.0
                 AMIGANET 39:141/139.0






