home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-05-11 | 97.0 KB | 2,593 lines |
-
-
-
-
-
-
-
-
-
-
-
-
- Install-Pro
-
-
-
-
-
-
-
- User's Guide
-
- and
-
- Reference Manual
-
-
-
-
-
-
-
-
- Copyright 1991-1993 DB/Soft Publishing.
- All rights reserved.
-
-
-
-
-
-
-
-
- Printed in the U.S.A.
-
- Version 3.00, first printing
-
-
-
-
-
-
-
- Copyright
-
- This software is protected under United States Copyright Law and
- International Treaty provisions. DB/Soft Publishing reserves all
- rights to Install-Pro except for the following:
-
- A limited license is hereby granted allowing you use and evaluate
- Install-Pro for up to 30 days. You may also distribute unregis-
- tered copies of Install-Pro in its entirety to any parties
- interested provided no modification of the files in the Install-
- Pro archive occurs. The maximum transaction related to selling
- media containing unregistered copies of Install-Pro (eg Shareware
- vendors) may not exceed $10.00. Conversion to a more convenient
- archive format is allowed. All other uses of Install-Pro violate
- this license and are hereby expressly disallowed.
-
- Copyright 1991-1993, by DB/Soft Publishing,
- All Rights Reserved.
-
- 3200 Truxel Rd #199, Sacramento, CA 95833 USA
-
- Telephone: (916) 927-6951
-
- BBS: (916) 927-2349
-
- Limited Warranty
-
- DB/Soft Publishing grants no warranties, express or implied, by
- statute or otherwise, regarding this software and its related
- materials, their fitness for any purpose, their quality, or their
- merchantability. In no way shall DB/Soft Publishing be liable
- for any special, consequential, other damages for breach of
- warranty.
-
- This Statement shall be construed, interpreted and governed by
- the laws of the State of California.
-
- This warranty will be replaced by a limited 90-day warranty that
- covers the diskette, software and documentation upon registration
- of Install-Pro. Further, the limited license will be replaced
- with a license that allows royalty-free distribution of Install-
- Pro with your applications.
-
-
-
-
-
-
-
- Registering Install-Pro
-
- Install-Pro is an example of software marketed under the Share-
- ware concept. The premise is simple: you may evaluate Install-
- Pro for a reasonable period of time (30 days maximum) during
- which you decide if it is a program worth owning and using for
- installing your applications. If so, you must register Install-
- Pro, using order.doc for ordering information. If, after a
- reasonable evaluation period, you decide not to register Install-
- Pro, you then must discontinue its use.
-
- This provides me with a way to market software with very low
- advertising overhead, which results in a price savings passed
- directly on to you. And, it provides you with a chance to 'play'
- with my product and decide if it meets your needs.
-
- As an incentive to speed the registration process, a minor
- modification to Install-Pro processing occurs in the Shareware
- version. Prior to displaying your opening screen(s), an order
- information notice is displayed. Other than this single modifi-
- cation, all features that are included in the registered version
- of Install-Pro are available here.
-
-
- Getting Help_____________________________________________________
-
- There are several ways of contacting the author, Jeff Dunlop, for
- technical assistance if you get stuck. From cheapest and slowest
- to most expensive and fastest:
-
- - Fidonet's SHAREWRE echo
-
- - ILink's Shareware conference
-
- - Fidonet netmail at 1:203/16
-
- - Compuserve mail at 72147,3055
-
- - Internet at 72147.3055@compuserve.com
-
- - The DB/Soft Online at (916) 927-2349
-
- The best method of contacting the author depends on the type of
- assistance you need. If it's a rather complicated problem, you
- will probably be far better served if you prepare a message in
- advance and upload it with the script in question to the DB/Soft
- Online. We can then test it and offer suggestions. If it's just
- a question or suggestion about Install-Pro capabilities, the
-
-
-
-
-
-
-
- ILink or Fidonet conferences will work best. Fidonet netmail
- privileges can be difficult to get, but offer excellent timeli-
- ness at very low connect time. Check your local Fidonet BBS if
- interested.
-
-
-
-
-
-
-
- Table of Contents
-
-
- Chapter 1 Introduction .................................. 7
- Features ........................................... 7
- Requirements ....................................... 9
- Getting Started .................................... 10
- Install-Pro Scripts ................................ 10
- Documentation Conventions .......................... 11
-
- Chapter 2 Creating the screens .......................... 13
- BANNER ............................................. 13
- HELLO .............................................. 14
- HELLOBREAK ......................................... 14
- GOODBYE ............................................ 14
- GOODBYEBREAK ....................................... 15
- COLORS ............................................. 15
-
- Chapter 3 Building the entry forms ...................... 17
- USER ............................................... 17
- DESCRIBE ........................................... 20
-
- Chapter 4 Transferring files ............................ 21
- SUBDIR ............................................. 21
- FILE ............................................... 22
- Splitting Files .................................... 24
- UNZIP .............................................. 25
- ATTRIBSAVE ......................................... 27
-
- Chapter 5 Changing Disks and Terminating ................ 28
- FIRSTDISK .......................................... 28
- DISK ............................................... 28
- END ................................................ 28
- CHAIN .............................................. 29
-
- Chapter 6 Verifying the target environment .............. 30
- SPACE .............................................. 30
- CPU ................................................ 30
- FPU ................................................ 30
- RAM ................................................ 30
- EMS ................................................ 31
- VCPI ............................................... 31
- DPMI ............................................... 31
- XMS ................................................ 31
- VER ................................................ 32
- CONFIGFILES ........................................ 32
-
- 5
-
-
-
-
-
-
-
- PATH ............................................... 33
-
- SET ................................................ 33
-
-
- Chapter 7 Running external programs and viewing files ... 34
- RUN ................................................ 34
- PRERUN ............................................. 36
- RUNERRNOTIFY ....................................... 37
- VIEW ............................................... 37
-
- Chapter 8 Customizing Install-Pro ....................... 38
- ONERROR ............................................ 38
- Linking external text .............................. 38
-
- Chapter 9 Miscellaneous ................................. 40
- System Variables ................................... 40
- Command Line Switches .............................. 41
- Error Messages ..................................... 40
- Critical Errors .................................... 46
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 6
-
-
-
-
-
-
-
- Chapter 1
-
- Introduction_____________________________________________________
-
- Install-Pro is the flexible and affordable solution to the common
- problem of transferring an application or information base from
- distribution media to its destination directories. Typically,
- the options have been to write a batch file, to write a custom
- program or to shell out hundreds of dollars for an anemic instal-
- lation utility. Until Install-Pro.
-
- Install-Pro is a script driven professional installation program
- that will automate the installation process while providing your
- customers with a crisp, easy-to-use interface. Unlike other
- script-driven installation utilities, Install-Pro is heavy on
- features, intelligent in its operation, and light on resource
- requirements. Any application can be ready to install to multi-
- ple directories from multiple disks in a matter of minutes. A
- brief list of features includes:
-
- - Professional look and feel for a better first impres-
- sion.
-
- - You customize multiple welcome screens and good-bye
- screens to your own needs.
-
- - Up to 999 installation disks and unlimited installation
- files.
-
- - Comprehensive environment detection, including minimum
- CPU, floating point processor, installed RAM, MS-Dos
- version, EMS, XMS, VCPI and DPMI.
-
- - Powerful system variables for CPU, math coprocessor and
- video adapter that allow your installation to behave
- differently depending on the target hardware.
-
- - Display your readme files at the end of the installa-
- tion in a nifty file viewer.
-
- - Intelligent FILES=, PATH and SET VAR= update for
- Config.sys and Autoexec.bat.
-
- - All Install-Pro text strings may be optionally rede-
- fined via an external file.
-
- - Files may be split into up to 9 pieces for huge files
- spanning multiple disks.
-
-
- 7
-
-
-
-
-
-
-
- Chapter 1, Introduction
- _________________________________________________________________
-
-
-
- - Files in the .zip format may be extracted. All direc-
- tories stored in a .zip file are automatically created.
- There is an .arj version of Install-Pro available on
- the DB/Soft Online for registered users.
-
- - You define the directory prompts and default destina-
- tion directories that the user sees.
-
- - You optionally define the installation disk names (such
- as "Utilities Disk" or "Install Disk")
-
- - You optionally specify the disk space requirements
- associated with all portions of the installation,
- including optional portions. (The user is given the
- option to try to continue with installation if short on
- disk space.)
-
- - Up to 8 user-defined destination directories.
-
- - Unlimited programmer-defined directories child to user-
- defined directories.
-
- - Each destination directory may either be optionally
- locked or the user may be allowed to change it.
-
- - "Run" commands allow your installation to include
- custom auxiliary programs or batch files to complete
- special tasks. The installation diskette directory(s),
- any of the user-defined directories, and any other
- arguments you choose can be specified anywhere on the
- command line.
-
- - Portions of an installation may be specified as option-
- al, prompting the user whether the optional portion
- should be installed.
-
- - Multi-Module installations handled seamlessly.
-
- - Files may be automatically overwritten, prompted before
- overwriting a newer file, prompted before overwriting
- any file or protected completely from overwrite.
-
- - Supports VGA/EGA 50/43 line text modes if detected.
-
-
- 8
-
-
-
-
- Chapter 1, Introduction
- _________________________________________________________________
-
-
-
- - Robust error handling, including a custom critical
- error handler that won't scare the dickens out of your
- users, and including descriptive fatal error messages
- (no "error 14 at xxxx:yyyy" found in this program!)
-
-
- Requirements_____________________________________________________
-
- Install-Pro runs under PC-DOS and MS-DOS versions 3.0 and above.
- A minimum of 220K of RAM is required. More memory is desirable
- if external programs are run from Install-Pro, or if large
- scripts are processed.
-
- There is virtually no limit to the size of script files.
-
- Script preparation will require a text editor that does not
- insert formatting codes into the text.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 9
-
-
-
-
- Chapter 1, Introduction
- _________________________________________________________________
-
-
-
- Getting Started__________________________________________________
-
- Before you can really build an installation script, you need an
- application that needs to be installed. Gather enough disks to
- hold your installation, format them if needed, and copy the
- application files over to the disks. Record what files are on
- which disks for later reference, and while you're at it, record
- the order that the disks are to be installed. Included on your
- Install-Pro disk are two files to aid you in recording this
- information. They are named MASTER.DOC and DISKWKS.DOC. For
- each installation you should print out one copy of MASTER.DOC,
- and a copy of DISKWKS.DOC for every disk in your installation.
- If you'll be installing your application from compressed files,
- then you want to compress your files before transferring them to
- diskettes.
-
- If you have huge files that will need to be split onto multiple
- disks, you may want to take a peek at the separate documentation
- for split.exe. All that you really need to know is that split
- will split filename.ext into filename.ex1, filename.ex2, etc.,
- and that filename.ex1 must not be copied to a higher-numbered
- disk than filename.ex2.
-
- Once you have a good idea of what files need to be transferred,
- then you're ready to start planning your installation.
-
-
- Install-Pro Scripts______________________________________________
-
- Install-Pro is script-driven. That is to say, it looks onto your
- distribution disks for instructions about how you want your
- installation to behave. The required instructions are found in
- script files, one to a disk. The script file on Disk One is
- named INSTALL.001; the script file on the next disk is named
- INSTALL.002, and so on.
-
- Install-Pro is also largely global in nature. That is, it reads
- the entire script on the current distribution diskette before
- doing any processing. Because of this, there are very few
- restrictions on the location of most commands. The major excep-
- tion is that USER commands must appear before any command that
- references a label defined in that USER command. However,
- Install-Pro's execution is very strictly defined and can be
- described as follows:
-
- Disk 1
- ------
-
- 10
-
-
-
-
- Equipment checks are performed.
- The opening screen(s) are displayed.
- The optional segments form is displayed.
- The main user entry form is displayed.
- PRERUN commands.
- FILE commands.
- UNZIP commands.
- VIEW commands.
- RUN commands.
-
- Disk 2 through Disk n - 1 (n = number of disks in installation)
- ---------------------------------------------------------------
-
- PRERUN commands.
- FILE commands.
- UNZIP commands.
- VIEW commands.
- RUN commands.
-
- Last Disk
- ---------
-
- PRERUN commands.
- FILE commands.
- UNZIP commands.
- VIEW commands.
- RUN commands.
- The closing screen(s) are displayed.
- Install-Pro either chains to a new copy of Install-Pro or ends.
-
- Because of this strict order of operations, USER, HELLO,
- HELLOBREAK and Equipment commands are legal but meaningless on
- any disk other than the first disk. GOODBYEBREAK commands are
- legal on any disk, but not processed until the end of the instal-
- lation.
-
-
- Documentation conventions________________________________________
-
- In general, command parameters appear in three forms. If a
- paremeter appears in square brackets ( [] ), that parameter is
- optional. If it appears in angle brackets ( <> ), it is re-
- quired. If it appears in quotes ( "" ), it is both required and
- must be surrounded by quotation marks. The text that appears in
- brackets may either be a sub-command or a variable parameter.
- The proper use of the parameter is determined by looking up the
- documentation for that particular parameter below the main
- heading for the command.
-
- Throughout the text, commands appear as all capital letters.
- This is to remove any ambiguity as to whether a particular word
- is the name of a command or is being used in some other context.
-
- 11
-
-
-
-
- However, Install-Pro is not case sensitive. Commands, labels and
- directory paths can appear in any combination of upper and lower
- case.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 12
-
-
-
-
- Chapter 2
-
- Creating the Opening and Closing screens_________________________
-
- All commands that define the opening screen(s), BANNER, HELLO and
- HELLOBREAK, must appear in a file named INSTALL.001 on the first
- diskette of your installation set. These commands usually appear
- at the top of INSTALL.001.
-
- The format of the opening screen is similar to the following:
-
-
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ▒▒▒▒▒▒▒▒▒┌────────────────────────────────────────────────┐▒▒▒▒▒▒▒▒▒
- ▒▒▒▒▒▒▒▒▒│Welcome to the Install-Pro Installation Program │▒▒▒▒▒▒▒▒▒
- ▒▒▒▒▒▒▒▒▒└────────────────────────────────────────────────┘▒▒▒▒▒▒▒▒▒
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ▒┌────────────────────────────────────────────────────────────────┐▒
- ▒│ This program is going to transfer the Install-Pro files from │▒
- ▒│ the installation diskette to the directory(s) that you enter │▒
- ▒│ on the screen to follow. │▒
- ▒│ │▒
- ▒│ Press a key to continue. │▒
- ▒└────────────────────────────────────────────────────────────────┘▒
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
-
-
- The top message that you see is created with the BANNER command.
- The bottom message is created with a series of HELLO commands.
- If multiple HELLO screens are defined, then each keypress will
- display the following screen until all have been shown.
-
-
- BANNER___________________________________________________________
-
- Syntax: BANNER "Any text enclosed in quotes"
-
- The BANNER command identifies the line of text to be shown to the
- user as the program name on the opening screen. Up to 71 charac-
- ters are allowed, and a box surrounding the text auto-sizes for a
- neat appearance. If the particular text used creates unbalanced
- sides, insert an extra space on the errant side to even things
- out.
-
- If quotes are omitted, only the first word after BANNER will be
- detected. If no text is detected after BANNER, Install-Pro will
- abort with an error message. The BANNER command must be defined
- in install.001 to have any effect.
-
-
- 13
-
-
-
-
- Chapter 2, Creating the screens
- _________________________________________________________________
-
- HELLO____________________________________________________________
-
- Syntax: HELLO "Any text enclosed in quotes"
-
- The HELLO command identifies a line of text to be shown to the
- user on the welcome screen. Each line may have a maximum length
- of 71 characters. Characters in excess of 71 are ignored (trun-
- cated.) All of the HELLO text lines are displayed in the order
- detected in a single window, which automatically sizes itself to
- the length and height of the combined HELLO display. If you want
- empty lines included, indicate this with a set of empty quotes
- ("").
-
- Up to 13 HELLO lines will fit on a single screen. If more than
- 13 HELLO lines are defined without any intervening HELLOBREAK
- commands (described below), the subsequent lines will be dis-
- played on the next screen. Any number of HELLO screens (each
- autosizing, with a capacity of up to 13 lines) can be defined
- within the confines of available memory.
-
-
- HELLOBREAK_______________________________________________________
-
- Syntax: HELLOBREAK
-
- This command signifies that the following HELLO command is to be
- displayed on a new screen. Use this if you have special format-
- ting needs that require fewer than 13 lines to a screen.
-
- The format of the closing screen is similar to the following:
-
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ▒┌────────────────────────────────────────────┐▒
- ▒│ The installation has completed normally. │▒
- ▒│ │▒
- ▒│ Press a key to exit... │▒
- ▒└────────────────────────────────────────────┘▒
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
-
- This message that you see here is created with a series of
- GOODBYE commands. If multiple-screen messages are necessary,
- they can be separated if needed with GOODBYEBREAK commands.
-
-
- GOODBYE__________________________________________________________
-
- Syntax: GOODBYE "So-long text goes here"
-
-
-
- 14
-
-
-
-
- Chapter 2, Creating the screens
- _________________________________________________________________
-
- This command is used to build an end-of-install message to
- display to your users after successful completion of installa-
- tion. It can be up to 71 characters long, and like the HELLO
- lines, the GOODBYE text is displayed in an auto-sizing window.
- If you want to specify an empty line, use GOODBYE "". Somewhere
- near the bottom of the GOODBYE text, you should include something
- to the effect that a keypress will exit the program.
-
- Any number of GOODBYE lines can be defined, anywhere in the
- script file(s). After 14 GOODBYE lines have been encountered
- without an intervening GOODBYEBREAK command (described below), a
- page break is automatically inserted by Install-Pro.
-
- When an install.??? file is processed that is terminated with an
- END command, after all transfers have taken place, the GOODBYE
- messages are displayed, after which the program terminates.
-
- There are two events that can occur that will cause the closing
- screen to not be displayed. One is if you choose to terminate
- with a CHAIN command, which would load a new installation. In
- this instance, the closing screen defined with the last installa-
- tion processed would be the one displayed. The other is if an
- unrecoverable error occurs. In this instance the error is
- described to the extent possible, and Install-Pro terminates (see
- Chapters 8 and 9 for details).
-
-
- GOODBYEBREAK_____________________________________________________
-
- Syntax: GOODBYEBREAK
-
- This command tells Install-Pro that the next GOODBYE line defined
- in the script is to appear at the top of a new page.
-
- New with version 3.00
-
- COLORS___________________________________________________________
-
- Syntax: COLORS <Reg Fore> <Reg Back> <Err Fore> <Err Back> <Ent
- Fore> <Ent Back> <Bottom Fore> <Bottom Back> <Shadow Fore>
- <Shadow Back>
-
- The colors command requires exactly eight hexadecimal digits,
- from 0 to F, where 0 through F represent the following colors:
-
- BLACK 0
- BLUE 1
- GREEN 2
- CYAN 3
-
- 15
-
-
-
-
- RED 4
- MAGENTA 5
- BROWN 6
- LIGHTGREY 7
- DARKGREY 8
- LIGHTBLUE 9
- LIGHTGREEN A
- LIGHTCYAN B
- LIGHTRED C
- LIGHTMAGENTA D
- YELLOW E
- WHITE F
-
- The default COLORS setting for Install-Pro is COLORS 7 1 7 4 0 7
- 9 7 8 0 and is interpreted as:
-
- Regular Windows, Light Grey on Blue
- Error Windows, Light Grey on Red
- Entry Fields, Black on Light Grey
- Bottom Line, Light Blue on Light Grey
- Shadows, Dark Grey on Black
-
- Each background color (that is, each second number in the COLORS
- command) must be in the range of 0 through 7. This is a limita-
- tion in IBM PC video architecture.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 16
-
-
-
-
- Chapter 3
-
- Building the Entry Forms_________________________________________
-
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ▒┌───────────────────────────────────────────────────────────┐▒
- ▒│ Optional Installation Selection │▒
- ▒└───────────────────────────────────────────────────────────┘▒
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ▒┌───────────────────────────────────────────────────────────┐▒
- ▒│Please press your spacebar to check any of these optional │▒
- ▒│installation segments that you wish to include. │▒
- ▒│ │▒
- ▒│ ( ) Sample Files │▒
- ▒│ │▒
- ▒└───────────────────────────────────────────────────────────┘▒
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
-
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒┌───────────────────────────────────────┐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│ Destination Directory Entry │▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒└───────────────────────────────────────┘▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ▒┌─────────────────────────────────────────────────────────────────────┐▒
- ▒│ │▒
- ▒│Program Files C:\INSTPRO\ │▒
- ▒│Document Files C:\INSTPRO\ │▒
- ▒│Sample Files C:\INSTPRO\SAMPLE\ │▒
- ▒│ │▒
- ▒└─────────────────────────────────────────────────────────────────────┘▒
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
-
-
- The USER command, which is used to build the Destination Directo-
- ry Entry form (and its accompanying Optional Selection form)
- must appear in Install.001 on the first diskette of your instal-
- lation set.
-
-
- USER_____________________________________________________________
-
- Syntax: [OPTION or ATTACH] USER <label> "prompt" [default direc-
- tory] [NOMOD]
-
-
-
- 17
-
-
-
-
- Chapter 3, Building the Entry Forms
- _________________________________________________________________
-
- This command is the workhorse of Install-Pro. It is used to
- assign a prompt and a default destination to a label that is
- specified by you, as well as specify if the files associated with
- it are to overwrite existing targets. When the user inputs his
- destination directory it will be associated with this label name.
- This command also creates the workspace inside Install-Pro needed
- for FILE, RUN and SUBDIR commands to function.
-
- A discussion of each component of the USER command follows:
-
-
- [OPTION]
-
- Before he is shown the destination directory Entry Screen, all
- OPTION USER (and ATTACH USER) lines will be resolved by a form
- similar to the top form shown above. This form allows the user
- to toggle on or off any or all of the optional portions of your
- installation.
-
- To give the user the chance to not install an unneeded part of
- your application (tutorials, etc.) you only need to prefix a USER
- command with OPTION.
-
- [ATTACH]
-
- Warning: The ATTACH USER command is best classified as an
- advanced topic. Neophyte Install-Pro script-writers might best
- steer clear until the other aspects of Install-Pro are well
- understood.
-
- When using an ATTACH USER command, the syntax is slightly differ-
- ent:
-
- Syntax: ATTACH USER <label> "prompt" <parent label> [NOMOD]
-
- Before he is shown the destination directory Entry Screen, all
- ATTACH USER (and OPTION USER) lines will be resolved by a form
- similar to the top form shown above. This form allows the user
- to toggle on or off any or all of the optional portions of your
- installation.
-
- The way that ATTACH differs from OPTION is that instead of
- displaying a data entry line on the destination directory screen,
- the label instead gets its path from the path associated with the
- parent label. The best way to understand this is through an
- example:
-
- Assume that you want your main program files to go into
- C:\PROGSYS. Further, assume you want optional sample files to go
-
- 18
-
-
-
-
- Chapter 3, Building the Entry Forms
- _________________________________________________________________
-
- into C:\PROGSYS\SAMPLE. But, you want no chance that the sample
- files might end up in some other directory, unaccessible to your
- application. To do that:
-
- USER prog_files "Program Files" C:\PROGSYS
- ATTACH USER sample_files "Sample Files" prog_files
-
- SUBDIR sample_files \SAMPLE
-
- FILE prog_files filename
- FILE sample_files samplefilename
-
- In a line-by-line synopsis, and assuming the defaults were
- accepted by the user, the user is first shown a radio-button
- screen asking if he wants to install the sample files. If yes,
- then all actions with the label sample_files will occur. If no,
- none of those actions occur. Now, the user is shown an entry
- screen WITH ONLY ONE ENTRY LINE, for prog_files. Whatever the
- user types in for that path will be stored into both prog_files
- AND sample_files. Next, the SUBDIR command creates a SAMPLE
- subdirectory and finally, the FILE commands transfer filename and
- samplefilename over to their respective directories.
-
- In a nutshell, ATTACH USER commands allow optional events to
- occur in non-optional directories. In comparison, OPTION USER
- commands, if accepted, create an additional directory in which
- events are to occur.
-
- It is illegal to attempt to specify an OPTION USER command as the
- parent label to an ATTACH USER command. The reason is fairly
- obvious: if the OPTION USER is declined but the ATTACH USER
- isn't, there is no way to determine a path to store in the ATTACH
- USER label.
-
- <label>:
-
- The label portion of the USER command is nothing more than a
- tagname to assign to the information stored by this command. In
- some of the other commands you will want to refer to the destina-
- tion directory that this command creates, but you won't know if
- that directory will have been changed by the user. So, we refer
- to it with a label instead. Common labels might be prog_files,
- help_files, etc.
-
-
- "prompt"
-
- In the above form, "Program Files", "Sample Files" and "Document
- Files" were the prompt portions of the USER commands that created
-
- 19
-
-
-
-
- Chapter 3, Building the Entry Forms
- _________________________________________________________________
-
- the form. Each line of the Destination Directory Entry form
- consists of a prompt and its corresponding entry field.
-
-
- [default directory]
-
- If you want the user to be presented with a default directory
- when the Destination Directory Entry form is displayed, then you
- can do so. It must be in the form of a legal DOS path. In the
- above form, the default directories were C:\INSTPRO (twice) and
- C:\INSTPRO\SAMPLE. A default directory is optional unless you
- want to specify a NOMOD directory (described next).
-
-
- [NOMOD]
-
- Sometimes, you are going to want a specific directory path not to
- be changed by the user during installation. For instance, you
- may want a \SYS directory to exist on the installation hard
- drive. NOMOD makes this possible. If you tack NOMOD on the end
- of a USER command, the entry form displays "The directory portion
- of this field cannot be changed" whenever the user is editing
- this USER entry. Since it is not possible to know ahead of time
- what drive letters a target computer will have available, it is
- not allowed to freeze the destination drive, only the destination
- directory.
-
- New with version 3.00
-
- DESCRIBE_________________________________________________________
-
- Syntax: DESCRIBE <label_name> "Description for this label"
-
- The DESCRIBE command allows you to dedicate a line of text to
- describe what class of files the specified label will transfer.
- As a typical example:
-
- USER prog_files "Program Files" c:\progsys
- DESCRIBE prog_files "These are the main program files"
-
- In both the OPTION USER pre-entry form and main entry form, the
- DESCRIBE text is popped up in a one-line window at the bottom of
- the screen whenever the user is accessing that particular line of
- the form. In most cases you will either want to describe all of
- the lines of your forms or none of them, but consistency is not
- required.
-
-
-
-
- 20
-
-
-
-
- Chapter 4
-
- Transferring and Decompressing Files
-
- SUBDIR___________________________________________________________
-
- Syntax: SUBDIR <label_name> <dirname>
-
- When you define an entry form with USER commands, the directories
- that the user enters during the installation will automatically
- be created by Install-Pro. However, if you have directories that
- you want created child to the user-defined directories, you build
- them with SUBDIR commands. The components of the SUBDIR command
- are now discussed:
-
-
- <label_name>:
-
- The label name specified here MUST have been previously defined
- with a USER command. The subdirectory will be created as a child
- to the directory entered by the user on the line of the form
- associated with this label.
-
-
- <dirname>:
-
- This is the name of the child subdirectory. It does not matter
- how long it is (as long as the total directory length is below
- the DOS maximum of 65 characters) or how many directories are in
- the chain. That is, \SUB1\SUB2\SUB3 is a legal directory name if
- you wanted a long chain created child to a main subdirectory.
- There is no requirement that the directory(s) begin or end with a
- backslash.
-
- SUBDIR lines may exist anywhere in any install.??? file, but must
- precede the first use of its created directory or Install-Pro
- will be unable to continue.
-
- Example 1:
-
- USER label_1 "Data Files" C:\MYAPP\DATA
- SUBDIR label_1 \MOREDATA
-
- If the user accepted the default, the C:\MYAPP\DATA directory
- would be created. Also, as a result of the SUBDIR line, the
- C:\MYAPP\DATA\MOREDATA directory would be created.
-
-
- Example 2:
-
- USER label_1 "Data Files" C:\MYAPP\DATA
- SUBDIR label_1 \DATA1\DATA2\DATA3
-
- 21
-
-
-
-
- Chapter 4, Transferring Files
- _________________________________________________________________
-
-
- If the user accepted the default above, C:\MYAPP\DATA would be
- first created, and then the -entire- chain of DATA1\DATA2\DATA3
- would be created as a child. The resultant chain would thus be
-
- C:\MYAPP\DATA\DATA1\DATA2\DATA3
-
- CAUTION: The DOS limit for subdirectory length is 65 characters,
- including drive and colon. Keep in mind the maximum user-entered
- directory is up to 40 characters, leaving you up to 24 characters
- with any margin of safety. If the total exceeds 65 characters,
- DOS returns a directory creation error.
-
-
- FILE_____________________________________________________________
-
- Syntax: FILE <label_name> <filename> [UPGRADE, VERIFY or PROTECT]
-
- This command transfers a file from the current installation
- diskette to the directory associated with labelname. Since the
- file must be on the current diskette, this command must appear in
- the script on the same diskette. Thus, if you want a file on
- diskette #2 to be transferred, the FILE command must appear in
- install.002 on that diskette. The components of FILE are:
-
-
- <label_name>:
-
- The label name specified here MUST already have been created
- with a USER command. This determines the destination directory.
-
-
- <filename>:
-
- The filespec can take one of two forms. First, it can be a
- regular dos filename, in which case it will be transferred to the
- directory associated with the specified label. Alternatively, it
- can include an optional directory chain child to the directory
- associated with the specified label, in which case it will be
- transferred to that child directory. For that child directory to
- exist, it must first be created a SUBDIR command, described
- previously.
-
-
- [UPGRADE]:
-
- This modifier indicates that any files newer than the file being
- transferred are to be overwritten only with permission from the
-
-
- 22
-
-
-
-
- Chapter 4, Transferring Files
- _________________________________________________________________
-
- user. Therefore the user's machine must have a functional (and
- accurate) clock.
-
-
- [VERIFY]:
-
- This modifier directs Install-Pro to verify all file overwrites,
- even if the file being overwritten is older than the installation
- file.
-
- New with version 3.00
-
- [PROTECT]:
-
- This modifier prevents an existing file from being overwritten by
- Install-Pro. If the file exists, the copy does not occur.
-
-
- Example:
-
- USER label_1 "Data Files" C:\DATA
- FILE label_1 main.exe
- FILE label_1 main2.exe
-
- This partial script would transfer main.exe and main2.exe from
- the root directory of the current installation diskette to the
- directory that the user entered when prompted with "Data Files",
- perhaps the default directory presented to him, "C:\DATA".
-
- Now, consider this more advanced example:
-
- USER label_1 "Data Files" C:\DATA
- SUBDIR label_1 \HELP
- FILE label_1 main.exe
- FILE label_1 main2.exe
- FILE label_1 help\help.dat
-
- Assuming that the user accepts the default C:\DATA, this script
- will transfer main.exe and main2.exe from the root directory of
- the current installation diskette to C:\DATA, just as in the
- previous example. Also, as child to the user-entered directory
- will be created a help directory, to which will be transferred
- help.dat.
-
- The final structure if all defaults are accepted by the user is:
-
- C:\DATA\MAIN.EXE
- C:\DATA\MAIN2.EXE
- C:\DATA\HELP\HELP.DAT
-
- 23
-
-
-
-
- Chapter 4, Transferring Files
- _________________________________________________________________
-
- If the destination file already exists, its attribute is changed
- to read/write before the transfer is attempted. After the
- transfer has completed, if ATTRIBSAVE has been specified, the
- attribute of the destination file is changed to match the attrib-
- ute of the source file.
-
-
- Splitting Files__________________________________________________
-
- If you have files that just cannot fit onto a distribution
- diskette, Install-Pro has the ability to handle split files.
- First an example of how to tell Install-Pro what you want:
-
- FILE label_1 main.ex1e
- FILE label_1 main.ex2e
-
- These two FILE commands lines would cause Install-Pro to create a
- file called main.exe in the label_1 directory, from TWO files
- main.ex1 and main.ex2. What Install-Pro does is looks to see if
- an extra character has been added to a filename. If there is an
- extra character:
-
- 1. The source (distribution disk) filename is assigned an exten-
- sion of the first three characters of the filename's extension.
- This file should exist on the current distribution diskette.
-
- 2. The destination filename has the third character replaced with
- the fourth, and the fourth character is removed.
-
-
- Please note that:
-
- 1. main.ex1e and main.ex2f would not cause an append to occur.
- The filenames (with the exception of the third character of a
- four-character extension) MUST match. In this case, main.exe
- would be created from main.ex1, but main.exf would NOT be creat-
- ed.
-
- 2. The files MUST have the same label name assigned to each of
- them. If main.ex1e and main.ex2e were assigned different labels,
- \directory1\main.exe would be created, but \directory2\main.exe
- would NOT.
-
-
- The append/create decision is resolved as follows:
-
- 1. If third character of the extension is a '1' and the fourth
- character exists, the file is CREATED.
-
-
- 24
-
-
-
-
- Chapter 4, Transferring Files
- _________________________________________________________________
-
- 2. If the third character is greater than a '1', then Install-Pro
- checks to make sure that the preceding portion of the file was
- copied before proceeding. If so, the file is APPENDED.
-
- 3. If the third character is a number, but no fourth character
- exists, no split-file decision occurs - the file will be created.
-
- This type of file transfer can be especially touchy if the order
- of files transferred and then appended is incorrect. If you
- split files, I strongly recommend that you debug your script
- carefully and compare the created file with the original (using
- the DOS program 'COMP') to be sure that they are identical before
- releasing your application.
-
- There is an accompanying utility called split.exe which will
- split your large files for you if needed. It comes with its own
- documentation.
-
-
- UNZIP____________________________________________________________
-
- Syntax: UNZIP <labelname> <zipfile> [VERIFY, UPGRADE or PROTECT]
-
- This command specifies a zip file that needs to be decompressed.
- The following assumptions are made with this command:
-
- 1. If the zip file is in a destination directory it is to be
- deleted after decompression. (Under no circumstances is it
- possible to delete a zip file on the distribution disk.)
-
- 2. The base destination for the extracted files is to be the
- directory associated with labelname. That is, subdirectory
- information stored in the zip file is to be used relative to the
- current zip file directory.
-
- 3. The filename's default extension is 'zip'.
-
- 4. The file was compressed with a supported version of PKWare's
- PKZip or 100% compatible. Currently, all compression methods
- through 2.04c are supported. See the read.me file for updates on
- more recent releases.
-
- 5. The file was NOT encrypted with a password.
-
- 6. The file is not part of a multiple-volume archive.
-
-
- The components of the UNZIP command should be interpreted as
- follows:
-
- 25
-
-
-
-
- Chapter 4, Transferring Files
- _________________________________________________________________
-
-
- <labelname>:
-
- The labelname, which must be previously defined with a USER
- command, defines the base directory for the decompression.
-
-
- <zipfile>:
-
- The zipfile may be transferred first with a FILE command, or it
- may be decompressed from the installation diskette. In perfor-
- mance, both methods are identical. However, if you decompress
- from the diskette, extra care must be taken to ensure that the
- UNZIP command occurs in the script on the current diskette. If
- you transfer with a file command and decompress from the instal-
- lation directory, then the UNZIP command can come anytime after-
- wards, even on the last diskette.
-
-
- [UPGRADE]:
-
- This modifier indicates that any files newer than the file being
- transferred are to be overwritten only with permission from the
- user. This modifier is reliant on the user's machine having a
- functional clock, and that the files on the user's machine
- reflect actual dates.
-
-
- [VERIFY]:
-
- This modifier directs Install-Pro to verify all file overwrites.
-
- Any directory information packed in an zip file is automatically
- created as needed during the unzip process. Under no circumstanc-
- es will a file stored in a zip file with subdirectory information
- be unpacked into the current directory.
-
- New with version 3.00
-
- [PROTECT]:
-
- This modifier prevents any file in the destination directory from
- being overwritten by a file in the .zip file.
-
-
- Example:
-
- UNZIP label1 zipfile
-
-
- 26
-
-
-
-
- Chapter 4, Transferring Files
- _________________________________________________________________
-
- would unzip zipfile.zip in the directory associated with label1.
-
- If UNZIP refers to an OPTIONal label, the UNZIP will only occur
- if the user chose to include that part of the installation.
-
- Since an error extracting a zip file must be considered as
- dangerous as an error copying an installation file, crc or other
- unzip errors must be treated as fatal errors, with program abort,
- so double-check the integrity of your .zip files before distribu-
- tion.
-
- If the destination file already exists, its attribute is changed
- to read/write before the transfer is attempted. After the
- transfer has completed, if ATTRIBSAVE has been specified, the
- attribute of the destination file is changed to match the attrib-
- ute of the source file.
-
-
- ATTRIBSAVE_______________________________________________________
-
- Syntax: ATTRIBSAVE
-
- This command states that you want attributes assigned to files on
- your distribution disks and attributes of files within your
- compressed archives to be preserved after they have been in-
- stalled in the destination directories. Even if you install
- read-only files, however, Install-Pro will be able to overwrite
- them during subsequent installs.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 27
-
-
-
-
- Chapter 5
-
- Changing Disks and Terminating___________________________________
-
-
- FIRSTDISK________________________________________________________
-
- Syntax: FIRSTDISK [disk name]
-
- This command allows you to name the first disk of the installa-
- tion something besides the default "Disk 1" (for example, "In-
- stall Disk"). Other than slightly changing screen appearance and
- prompts, this command does not affect the physical operation of
- Install-Pro in any way. If no argument follows the FIRSTDISK
- command, the default of "Disk 1" will be used.
-
- FIRSTDISK MUST appear in install.001 to have any affect.
-
-
- DISK_____________________________________________________________
-
- Syntax: DISK [disk name]
-
- This command specifies that when processing for the current disk
- has finished, the user is to be prompted to insert the next
- numbered disk (as opposed to terminating the installation). The
- extension of the script file increments with each successive
- disk. For example, if the disk being processed is disk 1 with i-
- nstall.001, specifying DISK would cause the user to be prompted
- to insert disk #2. If the user presses enter and the disk in the
- drive in which install.exe exists does not have install.002 in
- the current directory, the user will be instructed to try again.
- This loop repeats until the user inserts the correct disk or
- until the user presses Escape, which would terminate the program.
-
- The optional [disk name] argument allows you to name the follow-
- ing disk something besides "Disk n". Common uses are "Utilities
- Disk","Fonts Disk" or what-have-you. If you adopt this or
- another naming convention, be sure to look up the FIRSTDISK
- command for instructions on naming the FIRST disk (since the DISK
- command always names the FOLLOWING disk.)
-
-
- END______________________________________________________________
-
- Syntax: END
-
- This command indicates that the end of the last installation
- script has been reached. Just like DISK, END forces all informa-
- tion stored in all labels to be processed. However, unlike DISK,
- when this processing has been completed, the program displays the
- GOODBYE messages and exits.
-
- 28
-
-
-
-
- Chapter 5, Changing Disks & Terminating
- _________________________________________________________________
-
-
- This command is mutually exclusive of the DISK command. Whichev-
- er is encountered first on any given diskette will dictate the
- processing that will occur, and the other will be ignored.
-
-
- CHAIN____________________________________________________________
-
- Syntax: CHAIN
-
- This command indicates that the end of the last installation
- script has been reached, just like END. When this command is
- reached, all work accumulated is processed. Unlike END, however,
- CHAIN is a conditional installation terminator. The user is
- presented with "Do you wish to install another module (Yes/No)".
- If the user selects NO, then the GOODBYE screen is displayed and
- Install-Pro terminates.
-
- If the user selects YES, then he is prompted to insert the
- Install Disk of the next module and Install-Pro transfers control
- to another copy of itself on the new diskette, and the old copy
- of Install-Pro in memory is discarded. Any GOODBYE screen will
- be handled by the new copy of Install-Pro.
-
- The actual filename that is looked for with CHAIN is the identi-
- cal path and filename of the currently executing process. So, if
- you have renamed one copy of Install-Pro to INSTALL.EXE, they all
- must be renamed that way.
-
- The traditional use for this type of termination is in the case
- of integrated accounting software, where it is unknown at runtime
- how many modules (General Ledger, System Manager, Accounts R-
- eceivable,etc.) have been purchased.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 29
-
-
-
-
- Chapter 6
-
- Verifying the target environment_________________________________
-
-
- SPACE____________________________________________________________
-
- Syntax: SPACE <label_name> <nnnnn>
-
-
- If you would like the destination drive checked for available
- disk space before proceeding (often a good idea) you define your
- space requirements with this command. It is not foolproof, since
- it is possible that the installation will go on top of an old
- one, but it provides you with an opportunity to warn the user if
- his disk is almost full.
-
- Each SPACE command must reference a defined label (via the USER
- command.) After the user chooses his destination drive and
- directories in the entry screen, all labels that access each
- drive are added together to determine if enough free disk space
- exists.
-
- The disk check(s) occur directly after the user has finished with
- the destination directory entry screen. Any OPTIONal installa-
- tion segments that are declined by the user are not counted when
- determining adequate disk space.
-
-
- CPU______________________________________________________________
-
- 486 new with version 3.00
-
- Syntax: CPU <86, 286, 386 or 486>
-
- This command can be used to warn the user that his machine has a
- processor that will not run your application. This is treated as
- a warning, and the user is allowed to try to continue. Please
- note that this detection is not 100% reliable due to the huge
- number of computers available.
-
-
- FPU______________________________________________________________
-
- Syntax: FPU
-
- This command will warn the user that your application needs a
- math co-processor installed to function. This is treated as a
- warning, and the user is allowed to try to continue.
-
-
- RAM______________________________________________________________
-
- 30
-
-
-
-
- Verifying the Target Environment
- _________________________________________________________________
-
-
- Syntax: RAM <nnn>
-
- Changed starting with version 3.00
-
- This command will warn the user if the installation machine has
- less ram (in kilobytes) available than would be required by your
- application. This is handled by Install-Pro calculating its
- program size and adding the amount of free ram available to
- Install-Pro. It is fairly safe to assume that this calculation
- will be accurate if your application had been loaded instead of
- Install-Pro.
-
-
- EMS______________________________________________________________
-
- Syntax: EMS <nnnn>
-
- New with version 3.00
-
- This command will warn the user if less available EMS (LIM 3.0-
- compatible expanded memory, in kilobytes) is detected than is
- required by your application.
-
-
- VCPI_____________________________________________________________
-
- Syntax: VCPI
-
- New with version 3.00
-
- This command will warn the user if there is not a VCPI server
- installed.
-
-
- DPMI_____________________________________________________________
-
- Syntax: DPMI <nnn>
-
- New with version 3.00
-
- This command will warn the user if there is not a DPMI server
- installed greater than or equal to the version specified. If
- your application requires DPMI 0.90 or newer, you would indicate
- this with DPMI 090 (or just 90). That is, two decimal points are
- implied in the version specified.
-
-
- XMS______________________________________________________________
-
- 31
-
-
-
-
- Verifying the Target Environment
- _________________________________________________________________
-
- Syntax: XMS <nnnn>
-
- New with version 3.00
-
- This command will warn the user if less available XMS (extended
- memory, in kilobytes) is detected than is required by your
- application.
-
-
- VER______________________________________________________________
-
- Syntax: VER <n.nn>
-
- This command will warn the user if the version of MS-Dos on the
- installation machine is less than required by your application.
- This is treated as a warning, and the user is allowed to try to
- continue.
-
-
- CONFIGFILES______________________________________________________
-
- Syntax: CONFIGFILES <nn>
-
- This command follows the following logic:
-
-
- 1. Attempt to determine the boot disk.
-
- 2. If the boot disk is found, try to find Config.sys.
-
- 3. If Config.sys has been found, read the FILES= statement.
-
- 4. If Config.sys cannot be found, or if Config.sys has been
- found but with FILES= too low, ask the user for permission
- to update Config.sys. If permission is granted, ask the
- user for the path to Config.sys if Config.sys hasn't been
- found.
-
- 5. Modify Config.sys if given permission.
-
- Please note that the goal here is to:
-
- 1. Only disturb the user if unable to determine that FILES= is
- okay.
-
- 2. Never modify Config.sys without permission.
-
- 3. Don't access a Bios-reported floppy diskette unless the
- user inputs it as the boot disk.
-
- 32
-
-
-
-
- Verifying the Target Environment
- _________________________________________________________________
-
-
- A message is displayed notifying the user whether the update
- occurred, or whether it wasn't needed after all.
-
-
- PATH_____________________________________________________________
-
- Syntax: PATH <labelname>
-
- This command allows a path associated with a label to be inserted
- into the path statement in Autoexec.bat. If the particular path
- entry is found in the PATH statement in Autoexec.bat, no attempt
- is made to add it again. Like with Config.Sys, the user is only
- disturbed if Install-Pro is unable to determine that the PATH
- setting is okay.
-
-
- SET______________________________________________________________
-
- Syntax: SET <ENVVAR>=<value>
-
- New with version 3.00
-
- This command allows you to place any value you wish into the
- user's Autoexec.bat. <ENVVAR> is your environmental variable.
- <value> is the value you wish to place in the environment. All
- instances of a label name prepended with an exclamation point (eg
- !label_name) are directly replaced with the path that the user
- types in for the USER command associated with that label name.
- Trailing backslashes on that path are always stripped before
- passed to the SET command.
-
- If <ENVVAR> is already in Autoexec.bat, it is replaced with the
- new value.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 33
-
-
-
-
-
- Chapter 7
-
- Running External Programs________________________________________
-
-
- RUN______________________________________________________________
-
- Syntax: RUN "any command line in quotes" [log-to directory]
-
- This command defines a command line to be built to execute any
- special programs or batch files that are needed to customize an
- installation. One use for this might be to run a config.exe
- program that will bring the user straight into configuring the
- application he is installing. Another use might be to create
- application menu definition files that couldn't be built at
- install-time otherwise.
-
- New with version 3.00
-
- [Optional Directory]
-
- If an optional directory is specified, then Install-Pro will log
- onto that directory (it can even be on a different drive) before
- executing the command. If you want to log onto one of the
- directories entered by the user on the entry form, indicate it
- with an exclamation point followed by the label name (eg
- !prog_files). If you want an absolute directory logged onto,
- just specify the directory verbatim (eg c:\progsys). Specifying
- an absolute directory is risky, as there is no guarantee that it
- exists!
-
-
- "any command line in quotes"
-
- Run works by one of two methods. If the command specified on the
- command line has the extension ".EXE" or ".COM", the program is
- executed directly by Install-Pro. If no .EXE or .COM extension
- is specified, your command is run by invoking a command processor
- shell and passing it the command line that you specify. There
- must be enough memory to load both your program or command shell
- in addition to that used by Install-Pro.
-
- Run command lines of longer than one word MUST be enclosed in
- quotes.
-
- Further, the directory(s) that the user enters at runtime are
- available on the RUN command lines. Simply specify any label
- with a preceding exclamation point (!) and the user-entered
- directory will be directly substituted for that portion of the
- text. The directory is inserted without any leading or trailing
-
-
- 34
-
-
-
-
- Chapter 7, Running External Programs
- _________________________________________________________________
-
- spaces, but the spaces on the RUN command line are UNTOUCHED.
- Some examples follow:
-
- RUN "dir !label_1"
- RUN "!label_1\myprog.exe" !label_1
-
- This example would first change to the directory entered by the
- user for label_1 before executing myprog.exe.
-
- RUN "copy !label_1\this.fil !label_2"
-
- RUN "anydir\anyprog.exe" c:\progsys
-
- This example would log into c:\progsys before attempting to run
- c:\progsys\anydir\anyprog.exe.
-
- Finally, a special sequence, !home, signifies that you wish to
- specify the installation directory of the installation disk. For
- obvious reasons, don't create any labels called 'home' with the
- USER command, or the !home sequence will no longer point at the
- home directory, but rather at the directory entered by the user
- for this labelname.
-
- RUN "!home\myprog.exe"
-
-
- would execute myprog from the installation directory of the
- installation disk.
-
- When a RUN command is executed, the screen is saved and cleared
- first. After it has completed, the screen is restored.
-
- If the command shell attempt fails, the user will be notified of
- the reason (usually memory) but the INSTALLATION WILL NOT ABORT.
- If there is a critical part of your installation occurring with a
- RUN command, be sure to document it in your manual installation
- instructions for the user.
-
- A few points to keep in mind:
-
- 1. The error trapping is much more solid if Install-Pro direct-
- ly executes your program. This is due to the fact that if
- the command shell is used instead, success constitutes the
- shell having successfully loaded. Whether enough ram exist-
- ed for your program or your program was found is not detect-
- able by Install-Pro. What's worse, in the case of older
- versions of the alternative command processor 4Dos, the
- command shell load process occurs in two parts. The first
-
-
- 35
-
-
-
-
- Chapter 7, Running External Programs
- _________________________________________________________________
-
- part of 4dos can load successfully but fail to load the rest
- of itself and still return success to Install-Pro.
-
- 2. Memory requirements for command shell RUN commands can be
- significantly higher, especially if COMMAND.COM is the
- target of COMSPEC (about 27k).
-
- 3. A single RUN command in .EXE mode is allowed up to 9 argu-
- ments. Additional arguments are ignored. In command shell
- mode, there is no limit to the number of arguments allowed.
-
- 4. A single RUN command in .EXE mode is allowed a length of up
- to 256 characters. The length of any single argument is re-
- stricted to 128 characters. If argument zero (the direc-
- tory, path and filename of the executing program) is longer
- than 128 characters, DOS will return an error message back
- to Install-Pro. If any other argument is longer than 128
- characters, the argument will be truncated.
-
- 5. A single RUN command in command shell mode is allowed a
- total length of up to 256 characters, but keep in mind that
- the widely-used command interpreter COMMAND.COM will only
- allow 128 characters total. 4dos, among others, allows up
- to 256 characters.
-
- 6. RUN commands MAY access OPTIONal directories. However, if
- any of the optional directories listed in a RUN command line
- were not accepted by the user (even if the directory already
- exists), the command will be ignored. This allows RUN
- commands to be conditional on whether an OPTION has been
- accepted. If an OPTION is declined, you can be sure that
- the associated RUN commands will not be executed.
-
-
- PRERUN___________________________________________________________
-
- Syntax: PRERUN "any command-line in quotes" [log-to directory]
-
- New with version 3.00
-
- This command is identical to the RUN command, except that it is
- processed BEFORE any FILE, UNZIP or VIEW commands have been
- executed. If you have a task that needs to be completed before
- any work has been actually started on the current disk, use
- PRERUN. For example, if you would like to back some files before
- installing an upgrade, you could do so with this command.
- RUNERRNOTIFY affects PRERUN just as it does RUN.
-
-
-
- 36
-
-
-
-
- RUNERRNOTIFY_____________________________________________________
-
- Syntax: RUNERRNOTIFY
-
- New with version 3.00
-
- Ordinarily, Install-Pro only notices whether or not a program
- executed with a RUN command successfully loaded, ignoring the
- return value. Including RUNERRNOTIFY notifies Install-Pro that
- you want any non-zero errorlevel exits of your RUN commands to be
- flagged as an error. Thus, you can force non-zero exits to have
- the same warning message displayed that is shown on program load
- errors. Just like regular RUN error processing, the installation
- still attempts to continue.
-
-
- VIEW_____________________________________________________________
-
- Syntax: VIEW [filename]
-
- New with version 3.00
-
- This command allows a very nice scrollable window to be popped up
- with your read.me files. Just like with the RUN command, labels
- can be used in the path. For example, to view read.me on the
- distribution diskette:
-
- VIEW !HOME\READ.ME
-
- Just as a side note: the functionality of the VIEW command is
- generally available to C programmers through DB/Soft's ViewLib,
- which is a library that brings flexible report viewing to C
- object-compatible programs. An evaluation version of ViewLib can
- be downloaded from the DB/Soft Online.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 37
-
-
-
-
-
- Chapter 8
-
- Customizing Install-Pro__________________________________________
-
-
- ONERROR__________________________________________________________
-
- Syntax: ONERROR "Any text in quotes"
-
- If an error occurs, you may have a specific suggestion that you'd
- like to present your customer, for example a number to call. If
- ONERROR is defined in install.001, the unrecoverable message text
- "Please refer to your manual installation instructions if the
- problem cannot be corrected." is directly replaced with whatever
- text you specify. The text in quotes may be up to 200 charac-
- ters.
-
-
- Linking external text____________________________________________
-
- Distributed with Install-Pro comes a file called EXTERNAL.LNG.
- This optional file, if found in the Install-Pro directory, is
- used to replace the internally defined text strings. This
- feature allows total prompt redefinition for specialized needs
- such as foreign language translations. The linkage occurs before
- ONERROR text is read into memory, so ONERROR takes precedence
- over its counterpart in the redefinition file.
-
- If EXTERNAL.LNG is found, Install-Pro inserts the text found
- directly into the program space, and will behave as if it had
- been developed with that text. The file is read on a one-to-one
- correspondence to internal string space. That is, each line
- replaces a specific string of text. In the case of some of the
- longer strings, you may specify a line continuation with the '\'
- (backslash) character. Thus,
-
- "String definition 1 " \
- "String definition continued"
-
- would be treated as the following single definition:
-
- "String definition 1 String definition continued"
-
- Don't forget that you probably want a space character after the
- last word of continued string definitions. The quotations marks
- are mandatory. Please be aware that there is a slight perfor-
- mance penalty involved in reading the definition file. If you do
- not want redefinition to take place, remove external.lng from
- your Install-Pro directory.
-
-
-
- 38
-
-
-
-
- Chapter 8, Customizing Install-Pro
- _________________________________________________________________
-
- Lines beginning with a semicolon or empty lines are ignored.
- Liberal use of semicolon-preceded comments will greatly aid the
- redefinition process, especially when translating between lan-
- guages.
-
- Some of the string definitions are included with %s or %d format
- specifiers. If you are not familiar with the programming lan-
- guage C, these are used to insert variable text into the string.
- When you redefine a string, you must remember to include the
- format specifiers in a similar position in the new string. If
- you include more format specifiers in the string than originally
- defined, garbage will display in your string at runtime. If you
- display fewer format specifiers, important information will not
- be displayed to your users.
-
- Some of the text strings are menu items (they are labeled as such
- in external.lng.) They must be preceded with a space character
- (e.g. " Yes " for the menu hotkeys to work correctly.
-
- The order of the string definitions is significant. You must
- redefine all of the text if you redefine any of it.
-
- When redefining text, I strongly suggest that the original text
- definitions provided in the sample be commented out and left in
- the file for reference. Generally, the new definitions need to
- be approximately the same length as the originals. Where possi-
- ble (e.g. some of the longer messages) I have allowed some extra
- leeway by implementing word-wrap in the message box and by
- leaving extra space. Generally, if a text redefinition is too
- long, the part that is too long will either be truncated or run
- into menu selection bars. If you cannot satisfactorily redefine
- a line, please contact us.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 39
-
-
-
-
- Chapter 9
-
- Miscellaneous____________________________________________________
-
-
- System Variables_________________________________________________
-
- For all of Install-Pro's flexibility, there are still some
- decisions that cannot be made ahead of time. The following
- system variables are defined at runtime, and can be used to
- modify the installation depending on the destination hardware.
- The system variables available are:
-
- IS86 - True if the processor is a 8088 or 8086.
- IS286 - True if the processor is a 80286.
- IS386 - True if the processor is a 80386 or higher.
- IS486 - True if the processor is a 80486 or higher.
- ISFPU - True if a math coprocessor is installed.
- ISMONO - True if the video adapter is monochrome.
- ISVGA - True if the video adapter is EGA, VGA or higher.
- ISCGA - True if not ISMONO and not ISVGA.
-
- The four processor variables are mutually exclusive. That is, it
- will never be the case that more than one is true. Similarly, it
- is never the case that more than one of the three video adapter
- system variables will be true.
-
- Using system variables is easy: just precede ANY command with the
- appropriate system variable, and that command will only be
- executed if the system variable is TRUE. Assume as an example:
-
- IS386 FILE prog_files progfile.zip
- IS386 UNZIP prog_files progfile
-
- If this were run on a 80386 computer, both of these commands
- would be executed. On any other computer, neither of them would
- be.
-
- Further, the complement of each of these system variables can be
- achieved with the keyword NOT. For instance, if you wanted to
- transfer a file to the destination directory only if the video
- hardware is not monochrome, you would use a command like this:
-
- NOT ISMONO FILE prog_files colorset.dat
-
- Note that a NOT <sysvar> <command> in conjunction with an accom-
- panying <sysvar> <command> provides 100% coverage of the hardware
- in question -- video, processor or math coprocessor.
-
- Also note that it is not usually necessary and often dangerous to
- precede a USER command with a [NOT] <sysvar> prefix. The reason
- is that the USER command disappears if the prefix is false. If
-
- 40
-
-
-
-
- Miscellaneous
- _________________________________________________________________
-
- the USER command disappears, then ANY command that accesses that
- USER command's label is illegal unless the command has the
- identical prefix that the USER command has.
-
- It is legal to stack multiple system variables on a single
- command, for instance:
-
- IS286 NOT ISVGA <command>
-
- would be exceuted on a computer with a 80286 processor and no VGA
- adapter installed.
-
- If you have candidates for other system variables that you would
- like considered, please notify us.
-
-
- Command Line Switches____________________________________________
-
- The following command line switches are supported:
-
- -m - use black and white colors.
-
- Install-Pro should display correctly on all video adapter/monitor
- combinations. It has been tested with a wide combination of
- adapters, including CGA lcd laptops and VGA mono workstations,
- and the display has always proved to be crisp and readable (even
- if by chance Install-Pro thinks it's using a color monitor).
- But, if a customer reports to you that he is unable to read the
- text, this switch will throw Install-Pro into black and white
- regardless of the adapter it is writing to. This switch should
- be mentioned in the installation literature that accompanies your
- application whenever possible. Selecting -m disables any COLORS
- command in your script, which is just as well as it was your
- COLORS command that made the screen unreadable in the first
- place. The -m switch does NOT affect the ISMONO system variable.
-
-
- -a=root - use alternate script file name.
-
- The syntax supported has a certain degree of flexibility.
- /A=root, /a=root, /a:root and -a:root will all work. Use which-
- ever style you are most comfortable with. You cannot specify the
- extension of your scriptfiles (they always start with .001 and
- continue), but you can specify the root (base) name of the file.
- Some examples might be NETINST or UPGRADE. This gives you the
- flexibility of containing multiple installation procedures on the
- same distribution diskettes. For instance, you might include
- instructions for current users of your application to type
- A:UPGRADE instead of A:INSTALL, and in a batch file named
-
- 41
-
-
-
-
- Miscellaneous
- _________________________________________________________________
-
- UPGRADE.BAT on your distribution disk you yourself could handle
- the syntax INSTPRO -a=upgrade.
-
-
- Error Messages___________________________________________________
-
- The following are the standard error messages built into Install-
- Pro. The nature of these errors is such that Install-Pro cannot
- continue, so these error messages can probably be classified as
- Fatal Errors. The message the user sees is similar to the one
- that follows:
-
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ▒┌───────────────────────────────────────────────────┐
- ▒│ The following unrecoverable error has occurred: │
- ▒│ │
- ▒│ Error opening install.001 │
- ▒│ │
- ▒│ │
- ▒│ Please refer to your documentation for manual │
- ▒│ installation instructions if the problem cannot │
- ▒│ corrected │
- ▒│ │
- ▒│ Press a key to terminate... │
- ▒└───────────────────────────────────────────────────┘
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
-
- As previously mentioned, the instructions can be modified with an
- ONERROR command.
-
-
- DOS version 3.0 or higher required
-
- A DOS version prior to 3.0 was detected. Install-Pro requires
- MS-DOS 3.0 or later.
-
-
- Error opening install.001
-
- INSTALL.001 was not found in the same directory as Install-Pro,
- or there were no file handles available.
-
-
- Token was expected but not found: line nn
-
- A token was expected but not found on the indicated line. This
- usually means that one or more words is missing on this line.
-
-
-
- 42
-
-
-
-
- Miscellaneous
- _________________________________________________________________
-
- Memory allocation error
-
- A request for more memory was denied. This is extremely unlikely
- to occur, as Install-Pro requires under 200k of free RAM.
-
-
- Error copying xxxxxxx
-
- DOS returned an error while trying to transfer the indicated
- file.
-
-
- Cannot copy a file onto itself
-
- The user specified the installation diskette as the destination.
-
-
- Error creating directory: zzzzzzz
-
- DOS returned an error while trying to create the indicated
- directory. The most likely cause is if the user tries to install
- the application to a directory that is the same name as an
- existing file.
-
-
- Authorization Error
-
- Install-Pro detected an authorization code that did not match the
- accompanying script file (install.001). Run Install-Pro again
- with your key to authorize your script.
-
-
- Executable integrity error - bad executable
-
- Install-Pro detected internal errors in its executable file.
- This usually means that the file has become corrupted. Restore
- an original from your backup and retry.
-
-
- Label not found: xxxxx, line nn
-
- The token in the <label name> position on the specified line does
- not correspond to a previously defined label name created with a
- USER command.
-
-
- Invalid Disk Space Number
-
-
-
- 43
-
-
-
-
- Miscellaneous
- _________________________________________________________________
-
- Either no token, or an invalid token, was detected after the
- SPACE command.
-
-
- Unexpected EOF - AUTHORIZATION, END, CHAIN or DISK expected
-
- If Install-Pro parses to the end of a script without finding some
- indication of how to terminate, it returns this error.
-
-
- Zip output file creation error
-
- An error was detected while trying to create a file imbedded in a
- zip file. The usual causes are out of disk space, network rights
- insufficient, or an existing directory of the same name.
-
-
- Zip file open error
-
- The zip file was not found, or no file handles were available.
-
-
- Invalid zip file header
-
- An inconsistency was detected in the zip file.
-
-
- Zip file corrupted
-
- An extracted file's crc did not match its reported crc.
-
-
- Zip file encrypted
-
- Encrypted zip files (and the inherent password needed to build
- the decryption key) are not supported.
-
-
- Error chaining to new program
-
- An error was encountered while trying to load a new copy of
- Install-Pro. Possible causes are insufficient memory or file not
- found.
-
-
- System Error - current directory not available
-
- Install-Pro requested from DOS the name of the current directory,
- but DOS returned an error.
-
- 44
-
-
-
-
- Miscellaneous
- _________________________________________________________________
-
-
- System Error - change directory failed
-
- An attempt by Install-Pro to change to another directory (to
- unzip a file) failed.
-
-
- Unexpected end of file
-
- The end of an zip file was encountered unexpectedly. This
- usually means the file is damaged.
-
-
- Disk Write Error - target disk full?
-
- The majority of disk write errors are a full disk, but they could
- also be caused by hard disk failure or logical errors in the FAT
- table.
-
-
- Directories must be 65 characters or less
-
- The path entered by the user plus the SUBDIR attached to it
- exceeded DOS' maximum. Don't define SUBDIRs longer than 20
- characters to be safe.
-
-
- Unsupported ZIP version
-
- A ZIP version of higher than 2.04 was detected in a zip file.
- Since no release version of ZIP greater than 2.04 currently
- exists, this error may likely indicate zip file corruption.
-
-
- Invalid command
-
- The first token encountered on the indicated line in the script
- was not a valid command.
-
-
-
-
-
-
-
-
-
-
-
-
- 45
-
-
-
-
- Miscellaneous
- _________________________________________________________________
-
- Critical Errors__________________________________________________
-
- Should a disk door be left open (or any other critical error
- trapped by DOS, for that matter) a Critical Error handler built
- into Install-Pro will take control and provide the user with a
- menu similar to this one:
-
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ▒┌──────────[DOS Critical Error]──────────┐▒
- ▒│ │▒
- ▒│ [Abort] [Retry] [Ignore] [Fail] │▒
- ▒│ │▒
- ▒└────────────────────────────────────────┘▒
- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
-
- If the user accepts retry, he will be in most cases safe. Of
- course, if his computer picked the exact moment that he's in-
- stalling your application to crash its hard drive, no Critical
- Error handler is going to recover very gracefully.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 46
-