*********************
* ConfigIt Features *
*********************

ConfigIt(tm) 2.0 is a fast and powerful commandline utility that automates
file updating in a network environment.  Without ConfigIt, changes to
configuration files have to made either one computer at a time(very time
consuming) or by replacing a current configuration file with another(not
practical if the configuration file requires unique settings for each
workstation, which is often the case).  With ConfigIt, you can specify
the changes that you would like to make and leave all other settings in
the configuration file intact.  Also you can have Configit log each update
to keep track of which workstations have been updated.  You can also
create Configit Job files that can be used to entirely automate file
updates when several changes are needed simultaneously.  Because of
Configit's flexible design, its many uses are only limited by your
imagination.

*****************************
* What's new in version 2.0 * 
*****************************

The following is a brief descriptiong of the new features that 
have been added to version 2.0.

- new placement parameters

/ils - insert at line start
/ile - insert at line end
/iss - insert start of searchstring
/ies - insert at end of searchstring

- environment variables

you can now insert environment variables into configuration files
by enclosing them in 2 pairs of ampersands signs and including them 
in your text parameter like below..

/t:text@@variable@@text

- improved backup

keeps up to 10 backups of each configuration file.

- reboot option

you can now have configit automatically reboot after a configuration
update has occured.

- error levels

configit can now return an error level to enhance its capabilities
when run from a batch file.

- display files

you can now have configit display a customized message after a
successful configuration file update.


*********************
* Installation      *
*********************

The ideal way to install Configit in a network environment is to place
CONFIGIT.EXE, CONFIGIT.PRF, and CONFIGIT.REG(if you're registered)
in a directory in which all users have read and filescan privileges.
This directory could be something like F:\PUBLIC.  If you're still
evaluating Configit and you're not yet ready to place it on the network,
try using the INSTALL.JOB file to install Configit locally.  This will
demonstrate how Configit could be used to automate the installation of
software in a network environment.  Before your run INSTALL.JOB, open
up this file with any text editor and view how simply it is create a
a Configit Job file.  Job files are described in greater detail later
in this file.  In order to run INSTALL.JOB type:

CONFIGIT /J:INSTALL.JOB

*********************
* Running Configit  *
*********************

Configit can be run from the command prompt, from a login script, or from
a batch file.  Its most useful application is running it from a login script.
Here changes can be made to many workstations automatically relieving the
network adminstrator from time consuming network software installations.
Because Configit is a commandline utility, it relies on commandline
parameters to tell it what you would like it to do.  If you there are
certain parameters that you would always like to use, create a file
called CONFIGIT.PRF and place it your path.  If you are always going
to use the same logfile you may want to include "/lf:logfile" in your
CONFIGIT.PRF.  Or you may want to add "/nd" if your don't want any
message to display when Configit is run.  The many available commandline
parameters contribute to Configit's flexibility and are described below.


*********************
* PARAMETERS        *
*********************
Below is a quick listing of available commandline parameters followed
by a more detail description of each.

Required
	     /f:filename
									      
Required
	     /t:text
	 or  /m:mergefile                                                   
     and/or  /s:searchstring

Required
	     /itp - insert at top of page
	 or  /ibp - insert at bottom of page                               
	 or  /ilb - insert line before                                    
	 or  /ila - insert line after
         or  /ils - insert at line start
         or  /ile - insert at line end
         or  /iss - insert start of searchstring
         or  /ies - insert at end of searchstring                                      
	 or  /ibs - insert at bottom of section(next blank line)            
	 or  /rs  - replace string"
	 or  /rl  - replace line"
	 or  /dl  - delete line"
	 or  /ds  - delete string
									      
Optional                                                                    
	     /a:abortstring - aborts update if string found
	     /j:jobfile   
	     /?  - help
             /rb - reboot computer after successful update

Logging options
	     /lf:logfile                                                    
	     /lt:update tag - use if logfile is used for several
			      configuration files
	     /le:log environment variable              
	     /nl  - no log
	     /yl  - yes log
	     /na  - no log if abort string found

Backup Options
	     /nb  - no backup
	     /yb  - yes backup

Display options
             /df:displayfile (overrides /nd)
	     /nd  - no display
	     /yd  - yes display (used to override /nd in PRF file

						 
*****************************
* Description of parameters *
*****************************

All of the parameters may at first seem confusing, but actually using 
them is really quite simple.  You simply specify the file you would
like to edit with the "/f:filename" parameter.  Then specify where
in the file you would like to make the changes with the "/s:searchstring"
parameter.  If you're going to add text to the file you can use the
"/t:text" or the "/m:mergefile" parameter.  And finally, you specify
where in relation to the searchstring that you would like to add the
text(ie. /ila - insert line after, /ibs - insert bottom of section, etc.).
The other parameters aren't essential but will set various options
for Configit such as logging options, backup options, and display options.


/f:filename  - this is used to specify the file that you would 
	      like to make configuration changes to.

/t:text      - this is used to specify the text you would like
	      add to the file.

/m:mergefile - this is used to specify a text file that can be merged
	       with the "filename" file.  This parameter can be used 
	       in place of the /t: to add multiply lines of text to a 
	       file.  This parameter can not be used with the /rs
	       parameter.

/s:searchstring  - specifies a string to search for in "filename" file.

/itp         - inserts ("text" or "mergefile") at top of page

/ibp         - inserts ("text" or "mergefile") at bottom of page   

/ilb         - inserts ("text" or "mergefile") line before searchstring 

/ila         - inserts ("text" or "mergefile") line after searchstring 

/ils         - inserts ("text" or "mergefile") at line start

/ile         - inserts ("text" or "mergefile") at line end

/iss         - inserts ("text" or "mergefile") at start of searchstring

/ies         - inserts ("text" or "mergefile") at at end of searchstring

/ibs         - inserts ("text" or "mergefile") next blank line after
	       searchstring.  This can be use to place text at the bottom
	       of a section.

/rs          - replaces searchstring with "text".  This can't be used
	       with "mergefile".

/rl          - replaces line containing searchstring with "text" or
	      "mergefile".

/ds          - deletes searchstring from file.

/dl          - deletes line containing searchstring.


/a:abortstring  - if string is found in file update will be aborted.  
		This can be used to check to see if an update
		was already made and if it was will leave the file as it
		is.

/j:jobfile   - this is used to specify the Job file you would like to use.
	       When this parameter is used all other parameters on the
	       commmandline will be ignored.

/rb          - this parameter can be used to force a reboot after a 
               successful configuration update.  The reboot will only
               occur if the configuration update was needed and was
               successful.  A generic "Press any key to reboot" message
               is displayed when this parameter is chosen unless a display
               file is specified(see /df: parameter below)

/df:         - this is used to specify a display file which is displayed 
               after a successful configuration update.  You may want to 
               inform the user of what type of update occurred or give them
               any special instructions of things they may have to do to
               adjust to the change.  When this parameter is used, no other
               message is displayed including the generic "Press any key
               to reboot" message that you get when you use the /rb(reboot)
               option.

/lf:logfile  - specifies logfile to use.  The logfile will list what
	       update was done (update tag),  who it was done to(log
	       environment string), at what date and time the update was
	       done, and whether or not the update was sucessful. This
	       logfile is comma-delimited so it can be opened up in many
	       different types of programs(for example a spreadsheet) to
	       analyze.

/lt:tag      - logfile update tag, this is used when the logfile is used
	       for more than one particular update to indicate which
	       update the entry in the log is referring to.  For Example,
	       If you are updating the win.ini file and the config.sys
	       file you can give each update a different update tag such
	       as "winupdate" for win.ini update and "configupdate" for
	       config.sys update.  

/le:variable - log environment string, this is used to specify what
	       machine or person the update was done to.  You could use
	       an environment variable such as username, if this is a
	       valid environment variable.  In order to use this you
	       must first set this variable into the environment using
	       the autoexec.bat file or the commandline.  An example
	       entry in the autoexec.bat file would look like the
	       following...

	       set username=jednie

/nb          - no backup, will not create a backup file.

/yb          - yes backup, will create backup with *.fig extension(default).
	       This can be used to override "/nb" in CONFIGIT.PRF.  The new
               improved backup feature will keep up to 9 backups of each
               configuration file named *.fig, *.fg2, *.fg3 and so on.

/nd          - no display, no message will display when Configit is done
	       running.  This is the only feature that is not available
	       in the Unregistered Version of Configit.

/yd          - yes display, displays message when Configit is done running.
	       This is the default setting however it can be used to override
	       a "/nd" in CONFIGIT.PRF


*********************
* LIMITATIONS       *
*********************

Because of the nature of the DOS commandline, you may run into some
difficulties if you use many parameters and your commandline exceeds
127 characters.  You can work around this limitation by including
frequently used parameters in the CONFIGIT.PRF or by creating a
Configit Job file instead.  Another limitation of using commandline
parameters is that they will always enter the program as uppercase
regardless of how the are typed at the commandline.  This will really
only effect the "/t:text" parameter and will result in "text" being
written to the configuration file in uppercase.  This usually isn't a
problem but if you find that this is a problem, you can easilly work around
it by creating a Configit Job file instead of using only the commmandline.
Below is a description of Configit Job files and the CONFIGIT.PRF file.

Also, you may run into a problem in how Configit removes trailing spaces
from "text", "searchstring" , and "abortstring".  You can overcome this
by including these strings within single quotation marks.  For example,
if you would like to change the following line...

PATH C:\DOS;C:\WINDOWS

to..

PATH C:\CONFIGIT;C:\DOS\;C:\WINDOWS

You would have to use the following..

CONFIGIT /F:C:\autoexec.bat /S:'path ' /t:path c:\configit; /rs

If you don't use the single quotation marks the results will be...

PATH C:\CONFIGIT; C:\DOS;C:\WINDOWS

Notice the extra space in the path statement.

					     
**********************
* CONFIGIT JOB FILES *
**********************

Configit Job files can be used to consolidate many configuration changes
into one easy to manage file.  Included in the CONFIGIT.ZIP file are
several sample Job files including the INSTALL.JOB file that you could
use to install Configit.  Job files don't have to have a *.job extension
but you may find it helpful to name them this way.

The language of the Configit Job file is very simple.  Configit only
processes lines in the file that begin with "/" or "#".  Lines
that begin with "/" are treated just like regular commandline
options.  You can place more than one parameter on a line but you
must separate each parameter by a space and limit that line to 127
characters.  Configit will process all lines that begin with "/"
until it reaches a blank line.  Then it will execute a configuration
file update based on those parameters.  Configit will continue to read
the file one line at a time until it reaches the end of the file.
Lines that begin with "#" will execute DOS commands such as copying files
or creating directories. The syntax for this follows..

#DOS COMMAND

All lines that don't begin with "#" or "/" can be used to add remarks
to the Configit Job file.  The best way to learn how to use Job files
is to examine the sample job files that are included with Configit named
SAMPLE1.JOB and INSTALL.JOB.  The SAMPLE1.JOB Job files will install
ConfigIt to your C drive and SAMPLE1.INI will make changes to the
SAMPLE1.INI file included in the Configit.zip file.  In order to run 
them type..

CONFIGIT /J:SAMPLE1.JOB

CONFIGIT /J:INSTALL.JOB


*********************
* CONFIGIT.PRF      *
*********************

The CONFIGIT.PRF file can be used when there are certain parameters that
you would like to use everytime you run Configit.  Simply enter as many
parameters on one line as you like in the file as long as you separate
each parameter with a space and limit the total length of all parameters
to 127 characters.  Configit includes a CONFIGIT.PRF file that contains
a parameter to create a logfile named CONFIGIT.LOG in the directory that
you run Configit from.  Feel free to change this file to suite your needs
and be sure to place it in a directory located in the DOS path.


*********************
* LOGGING OPTIONS   *
*********************

Configit can log configuration changes to a logfile when you use the
"/lf:logfile" parameter to specify what file you would like to use as your
logfile.  A logfile is created with comma-separated-values that can be
opened in many different types of programs to analyze.  For example,  If
you give your logfile a *.csv extension, The file can easily be opened
in Excel.

There are also several other parameters that can be used for
logging.  The "/le:environment variable" can be used to specify a DOS
environment variable that can be used to determine what machine or who's
machine the entry in the log file is referring to.  An example of how to
use this variable follows..

/le:username

This would work as long as you placed something like the following in
the AUTOEXEC.BAT file or login script.

set username=jednie

Another parameter that you may find useful is the "/lt:update tag" parameter.
If you created a Job file that contains many configuration changes, you may
want to give each change a different update tag to identify it from other
entries in a logfile.  For example, if your Job file is used for installing
a fax software program and you have to make changes to the WIN.INI and
SYSTEM.INI file, you may want to give update tags such as "/lt:fax-system"
and "/lt:fax-win" respectively.

The following are the remaining logging related parameters..

/nl - no log is made.  Normally a log will be made to the logfile if
      a logfile is specified with the "/lf:logfile" parameter.  This
      will override that parameter.

/yl - this is used to override "/nl" if "/nl" is placed in CONFIGIT.PRF.
      Logfile must already be specified with "/lf:logfile" parameter.

/na - no abort log.  Normally an entry is made in the logfile that says
      "update not needed" if the abort string is found.  The "/na"
      parameter can be used so no entry will be made if abort string is
      found.

Take a look at CONFIGIT.LOG after running SAMPLE1.JOB and INSTALL.JOB to
see what a typical logfile would look like.  


***********************************
* Using Error Levels              *
***********************************

Error levels can be used with ConfigIt to determine what the result of
the attempted configuration update is.  This can be used when ConfigIt
is run from a DOS batch file to have the batch file continue processing
after ConfigIt has completed based on whether or not the update was 
successful.  Below are the error levels returned by ConfigIt...

0 = successful update 
1 = update not needed - desired configuration already exists
2 = searchstring not found
3 = can't open configuration file - file not found or is read only
4 = unrecoverable error - this is a catch-all for any other errors

For example, you could have ConfigIt copy a file that doesn't exist
if it returns an error level of 3.  Or if the search string isn't
found(error level 2) you can have ConfigIt retry the update searching 
for a different string of characters.  Below is an example of how to
use ConfigIt and error levels in a DOS batch file...

CONFIGIT /F:WIN.INI /S:RUN= /T:C:\WINDOWS\PROGRAM.EXE /IES

IF ERRORLEVEL 3 GOTO ERROR3
IF ERRORLEVEL 2 GOTO ERROR2
IF ERRORLEVEL 1 GOTO ERROR1
GOTO THEEND

rem copy win.ini if it doesn't already exist
:ERROR3
COPY F:\PUBLIC\WINCFG\WIN.INI C:\WINDOWS
GOTO THEEND

rem rerun configit to add "run=" to win.ini
:ERROR2
CONFIGIT /F:WIN.INI /S:[WINDOWS] /T:RUN=C:\WINDOWS\PROGRAM.EXE /ILA
GOTO THEEND

:THEEND

Remember that you should check for higher level errors first as
an error level of 3 also means an error level of 2 and 1.  Check
your DOS documentation if you have any questions.


***********************************
* Using Environment Variables     *
***********************************

You can insert environment variables into a configuration file by
enclosing the variable within two pairs of ampersands and including
it in the text(/t:text) parameter.  This could be used to grab the
user's login id from the environment and insert it into a 
configuration file.  Below is an example on how to do this...

/f:program.cfg /s:[section heading] /t:set name=@@LOGIN_NAME@@ /ibs


***********************************
* Examples of how to use ConfigIt *
***********************************

*EXAMPLE 1

configit /f:win.ini /s:load= /t:load=calendar.exe; /rs /lf:update.log /le:username /lt:addcal /a:load=calendar

This entry would open up win.ini and add calendar to the load line.  If
the calendar entry is already found(/a:load = calendar), no update will be
made.  The /rs parameter is used when you would like to replace the
searchstring(/s:searchstring) with the text(/t:text).  An entry will be
added to the logfile similar to the following.

jednie,02-16-1996,11:28:02,addcal,Ok

- jednie is the username that was set in an environment string
- 02-26-1996 is the date the log was made
- 11:28:02 - is the time the log was made
- addcal is the name of the update tag(operation)
- Ok means that the configuration update was sucessful.

************

configit /f:system.ini /s:[drivers] /t:wave=mmsystem.dll /ibs 

This entry would add the line "wave=mmsystem.dll" to the bottome of the
"[drivers]" section in the system.ini.

************

configit /f:c:\autoexec.bat /s:c:\dos\smartdrive.exe /t:rem c:\dos\smartdrive.exe /rs

This entry will place a remark in front of the line that loads smartdrive
in autoexec.bat file.

***********

For more examples on how to use Configit, see the SAMPLE1.JOB and
INSTALL.JOB file


***************************
* BENEFITS OF REGISTERING *
***************************

By registering Configit, you will qualify for free upgrades to future
versions of Configit and free tech support via E-Mail.  Also, the nag
screen that requires the user to press enter to continue will no longer
appear.  In fact, you can run Configit with the "/nd"(no display) option
and Configit will run without any indication to the users that changes
are being made.


****************
* Registration *
****************

There are two ways to register ConfigIt

1.)If you have a CompuServe account, please type 
       GO SWREG, and register program 10250, 10251,or 10252.  
       CompuServe will guide you through their billing process.

2.)Fill out order form and mail it to me.

Configit is licensed based on the number of users on the network
that will be accessing it.  The following list the prices for Configit..

	50 user license - $15
       250 user license - $30
       500 user license - $45   plus $3 shipping and handling

Please fill out the order form at the bottom of this file and
send it along with your CHECK or MONEY ORDER (send no cash) for
the proper amount to:

   James R. Ednie
   1991 Rose Arbor
   Toledo, Ohio 43614   USA

   Make your check or money order payable to James R. Ednie.

If you have any questions, you may contact me by the above mailing address,
or by sending e-mail to either of the e-mail address below:

      CompuServe:  72143,2422
	Internet:  72143,2422@compuserve.com

Thank you for your support of ConfitIt and the Shareware industry.
   

Copyright , 1996 James R. Ednie
All Rights Reserved.

----------------------------------------------------------------------------
			CONFIGIT REGISTRATION FORM


	    NAME __________________________
	 COMPANY __________________________
	ADDRESS1 __________________________
	ADDRESS2 __________________________
  CITY,STATE ZIP __________________________

  Specify how many of each license you would like to purchase:

     Quantity        Description               Total Cost

       _____         50 user license($15)       _________
       _____        250 user license($30)       _________
       _____        500 user license($45)       _________
		  
	  add shipping($3 US or $8 elsewhere)          
						----------
				   Total Cost   __________
						----------


-------------------------------------------------------------------------
**********************
* License Agreement  *
**********************
This software and documentation is
Copyright 1996, James R. Ednie

This software is provided for evaluation purposes only.  If you 
find this software useful and would like to use it beyond 30
days you are required to purchase a license.  Upon receiving
a license you allowed to install Configit so it exists on only
one hard drive at any given time.  The license you are required to 
purchase is based on the number of users who will be accessing
Configit while it exists on the one hard drive.

Permission to use, copy, and distribute this software and its
documentation for any purpose (except as detailed hereunder) is 
hereby granted without fee, provided that the above copyright 
notice and this permission notice appear in all copies of 
the software and related documentation. Notices of
copyright and/or attribution which appear in any file included in
this distribution must remain intact. You may not disassemble,
decompose, reverse engineer, or alter this file or any of the
other files in the package.  You must include all files that 
were received in the orginal archive and under no circumstances
are you allowed to distribute the registration file that you
receive upon registering.  This software can not 
be bundled with any commercial package without express 
written permission from James R. Ednie.

THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF 
ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, INCLUDING 
WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY 
OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT 
SHALL JAMES R. EDNIE BE LIABLE FOR ANY SPECIAL, 
INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY 
KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS 
OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF 
THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, 
ARISING OUT OF OR IN CONNECTION WITH THE USE OR 
PERFORMANCE OF THIS SOFTWARE.