This section describes the descriptors and commands found in NETMAIN.ILS and other installation script files. The product installation script files you write contain the same types of descriptors and commands as those in NETMAIN.ILS.
A descriptor is a keyword preceded by the @ character. The installation NLM scans the descriptors and uses them to build linked lists and menus in memory. Descriptors
A command is a keyword not preceded by the @ character. Commands are
Script files can be natural-language-enabled by using text within double quotes (in-line text). Such text is designated for language translation, including text that will be displayed in menu items, help text, etc.
= { } ( ) , : - ; > < ! [ ] If a special character is used within a name, the entire name must be surrounded by double or single quotation marks.
; <text>
A comment (semicolon followed by text) exists for documentation purposes only---it does not invoke a script file operation. Comment characters through the end of a line are read and discarded.
; THIS IS A COMMENT
@CDName <name>
@CDName specifies the name of the CD-ROM volume being installed. This name is passed to CDROM.NLM in a MOUNT command (CD MOUNT <name>) to mount the CD-ROM as a NetWare volume. This descriptor should only be used in a script on a CD-ROM. It should not be used in a diskette drive installation script. Copy CDROM.NLM to the STARTUP directory as specified in the BOOT fileset.
@CDName NETWARE5
The installation will use the string NETWARE5 when trying to mount the CD-ROM as a NetWare volume. After successfully loading CDROM.NLM, it will issue CD MOUNT NETWARE5 at the system console.
@DeletePartition <comma-separated list of partition types>
@DeletePartition deletes the existing partitions that you specify. In contrast, the installation NLM's automatic partition creation deletes (by default) existing partitions of the first two types listed below. In both cases, all active partitions are left untouched.
Partition Type | Description | Deleted? |
---|---|---|
64 |
NetWare 286 |
Yes |
65 |
NetWare 386 |
Yes |
01 |
DOS, 12-bit FAT |
No |
04 |
DOS, 16-bit FAT |
No |
05 |
Extended partition |
No |
06 |
DOS Huge partition |
No |
If any of these partitions should not be deleted, or if additional partitions need to be added, use @DeletePartition to replace the list.
If the following appears in NETMAIN.ILS, only NetWare 386 partitions are eligible for deletion:
@DeletePartition 65
@Driver
Help: "Help description for finding drivers"
[Dir: <DSK | LAN>, <subdirectory name>, <vol label>,
<disk description>]
[Dir: <DSK | LAN>, <subdirectory name>, <vol label>,
<disk description>]
...
@EndDriver
@Driver specifies help for finding drivers in maintenance-mode installations, or finding disks and directories that contains drivers. <subdirectory name> specifies the directory to read. For floppy or network installations, the subdirectory will typically be NULL. For a CD-ROM, the subdirectory will usually be the common directory where drivers are found. <vol label> is the corresponding media volume name, and <disk description> specifies the printed name on the media that contains the included file. Use @Driver in the NETMAIN.ICS file.
@Driver
Help: "If installing from a floppy, disk drivers will be on disk NetWare-2 and LAN drivers will be on disk NetWare-3. If installing from CDROM, all drivers will be in the directory <cdrom drive>:\NW40\SERVER\DRIVERS."
Dir: DDSK, '', 'NETWARE-2', 'NetWare-2'
Dir: LAN, '', 'NETWARE-3', 'NetWare-3'
@EndDriver
Disk NetWare-2 will be scanned for .DSK and .DDI files; disk NetWare-3 will be scanned for .LAN and .LDI files.
@FileSet
Description: "...[fileset description]..."
Class: {MANDATORY | CORE | OPTIONAL | OPTIONAL_OFF |
BOOT}
Name: <text name - no spaces allowed>
Bytes: <total transfer size for this fileset>
[DiskBytes: <total disk space for this fileset>]
[Attribute: <attribute1>, <attribute2>]
[Flags: <flags>]
<fileset commands...See Syntax.>
@EndFileSet
@FileSet specifies a logically similar group of files to be copied and the necessary commands for copying and installing those files.
The Description and DiskBytes information for OPTIONAL and OPTIONAL_OFF classes of filesets is displayed in a menu before copying. The description for all filesets are displayed during the file copy. Bytes are used to update a status bar representing the total bytes to copy for all selected filesets, which is used in displaying the status bar.
Class specifies how the fileset will be used:
For all classes, as the files are copied, the file group status is also displayed, including the file being copied and the percent of all the filesets that have been completed.
Name is used to relate logical filesets together, even when they are declared in different included files. If multiple filesets exist with the same logical name, there can be only one description and one class for all of them. For example, if multiple filesets with the name OS2 are declared, and the class is OPTIONAL, only one description entry for the OS2 files is presented for the user to select. If the user selects it, all filesets with the name OS2 are copied.
BOOT files are files such as SERVER.EXE, SERVER.MSG, NWCONFIG.NLM, NWCONFIG.MSG, NUT.NLM, and NUT.MSG. The BOOT filesets are for internal use only: product files should not have any BOOT fileset declarations. Boot files cannot be compressed or renamed.
Attribute value indicates the final file attributes.The default value for attribute1 is 00060081 (Read Only, Shareable, Rename Inhibit, Delete Inhibit).
For a DOS file:
Attribute1 | Meaning |
---|---|
00000001 |
Read Only |
00000002 |
Hidden |
00000004 |
System |
00000008 |
Volume Label |
For a NetWare file:
The meaning for Attribute2 is 00000001 (do not decompress or process file). The default for Attribute2 is zero, which should be used in all usual circumstances.
@FileSet
Class: CORE
Name: SYSTEM_FILES
Description: "System Files"
Bytes: 10192463
CopyToServer 'SYSTEM', '*.*', 'SYSTEM-1', "NetWare System-1 Files"
@EndFileSet
In this example, *.* files are copied from volume SYSTEM-1:, and the percent of complete status for this fileset is displayed during copying.
@IncludeFile
File: <filename>
[DiskDescription: "...[disk description]..."]
[DiskVolume: 11 char vol name>]
@EndIncludeFile
@IncludeFile specifies a file (<filename>) with additional commands to parse and execute. DiskDescription specifies the printed name on the media that shows where the include file is located; DiskVolume is the corresponding media volume name.
The command file's directory is searched first. If the include file is not there, the specified disk volume is checked. If <filename> is a <path>\<file> combination, the command file directory is checked first for <file>, then the disk volume at the <path> offset is checked. If <file> includes wildcard characters, all files matching the pattern are included. If the filename has wildcards but no files match, none are included, and no error results. If the filename does not have wildcards, and the file is not present, an error occurs. If the filename is in single quotes and contains %{NWLANG}, %{NWLANG} is replaced by the language number (4=English).
For the NETMAIN.ILS file, where NETMAIN.ICS is not in the same directory as NETMAIN.ILS:
@IncludeFile
File: NETMAIN.ICS
DiskDescription: '[1]'
DiskVolume: SYSTEM-1
@EndIncludeFile
The file is parsed just after the @EndIncludeFile statement. If the installation cannot find NETMAIN.ICS in the directory where NETMAIN.ILS is, it prompts for the CD, then reads and parses NETMAIN.ICS from the CD.
@MessageFile
File: <filename>
[Version: <message file version number>]
@EndMessageFile
@MessageFile specifies a file, usually with the extension .MSG, containing message strings. It is typically located in the same directory as the script file or in an NLS subdirectory. When <message file version number> name variables are encountered when the remainder of the script file is parsed (including @Include files), the symbols are substituted with definitions from the message file.
The search order of message files is:
The Version number is eventually used to synchronize the script file with the messages. If no version is specified, version checking is not performed. Currently, no version checking is performed, regardless of whether the @Version descriptor is present.
Using the NETMAIN.ILS file (in the same directory as NETMAIN.MSG):
@MessageFile
File: NETMAIN.MSG
@EndMessageFile
NETMAIN.MSG is read into memory and used to dereference <message file version number> strings.
@StartAppObject
AppPlatform: <Supported Platforms>
AppName: <Name of the object to create>
AppPath: <UNC Path to the executable>
[AppDescription: "...Text..."]
[AppContact: <List of contacts>]
[AppMapping: <List of drive mappings>]
[AppFlags: <>]
[AppIcon: <Filename of Icon>]
[AppCaption: "...Text..."]
[AppParameters: <List of Parameters for AppPath>]
[AppPrinter: <Printer Ports>]
[AppShutdownScript: <Filename of Script>]
[AppStartupScript: <Filename of Script>]
[AppWorkingDir: <Startup directory for App>]
[AppUser: <List of users>]
[AppAdminNotes: "...Text..."]
[AppFaultTolerance: <List of fallover apps>]
[AppLoadBalancing: <List of load balancing apps>]
@EndAppObject
Use @StartAppObject to create NDS objects for use with the Novell® Application LauncherTM (NAL) product. It is used with NetWare for Small Business.
@StartAppObject
AppPlatform: 3x 95 NT
AppName: "Netscape Install"
AppPath: "SYS\\PUBLIC\\NETSCAPE\\NTSCINST.EXE"
AppCaption: "Netscape Install"
AppDescription: "Install the Netscape Internet browser"
AppContacts: admin
AppFlags: "No Cleanup"
AppIcon: "sys:public\\netscape\\netscape.ico"
AppWorkingDir: "sys\\public\\netscape"
AppUsers: "All Users" Action Standard Desktop
@EndAppObject
This example creates an NDS Application object named Netscape* Install. When NAL is run, this object will let the user install it to their desktop.
@Other
Description: "...[text]..."
[DiskDescription: "...[disk description]..."]
[DiskVolume: <11 char vol name>]
[File: <filename>]
[Flags: <flags>]
@EndOther
Description is the menu description displayed for the @Other configuration option. This label must be first in the set of labels for a particular @Other option.
File specifies the *.IPS file to execute, or the NLM to load to install the @Other option.
DiskDescription is the prompt name that will be displayed to the user to prompt for another diskette.
DiskVolume is the volume name for the disk specified in DiskDescription. If the DiskVolume label is present, the user is prompted for the specific volume using DiskDescription from drive A: (the user can change the drive). This continues until the file is found or the user cancels. If no DiskVolume is present, Install prompts for another diskette in drive A: and continues until the file is found (if File is present) or the user cancels. If File is not specified, installation looks for any *.IPS or PINSTALL.NLM files.
If the other filename extension is .IPS, the file is assumed to be a script and is interpreted. If the other filename extension is .NLM, the file is loaded and executed as an NLM.
@Other
Description: "Install NetWare for Macintosh"
DiskDescription: 'NWM System 1'
DiskVolume: 'MAC-1'
File: PINSTALL.NLM
Description: "Install TCP/IP Protocol"
DiskDescription: 'TCPIP System 2'
DiskVolume: 'TCPIP-2'
File: TCPIP.IPS
@EndOther
The Install NetWare for Macintosh* and Install TCP/IP Protocol menu items are displayed. If NetWare for Macintosh is selected, the user is prompted for the NWM System 1 CD, then PINSTALL.NLM on volume MAC-1: is executed. If TCP/IP is selected, the user is prompted for the TCPIP System 2 CD, then the command file TCPIP.IPS is interpreted.
@SyntaxVersion <major version>.<minor version>
The SyntaxVersion string represents the version of the script file parser. The SyntaxVersion string should be present for all script files, and the syntax version of the parser must match that of the file.
@SyntaxVersion 1.02
The internal syntax string in the installation utility will be compared with this string. If they do not match, the installation will prompt for a different file. All included scripts with a @SyntaxVersion descriptor will be checked for matching version strings (see @IncludeFile
@EndIncludeFile).
@StartSchemaMod
SchemaFileName: <Filename>, <Description>
@EndSchemaMod
@StartSchemaMod lets NDS schemas be extended through installation scripts.
SchemaFileName specifies the filename for the schema file, along with a Description for displaying to the screen during the modification.
@StartSchemaMod
SchemaFileName: "sys:\\system\\schema\\nwadmin.sch", "NetWare Administrator"
@EndSchemaMod
In this example, the NWADMIN.SCH file extends the NDS schema and displays "NetWare Administrator" on the screen during the installation of Directory Services.
@TimeZone
Description: <tz description>
Standard: <tz abb.>, <tz adj.>
[Daylight: <dst abb.>, <dst adj.>]
[DSTStart: <start rule>, <seq number>, <day number>,
<weekday number>, <month number>, <time>]
[DSTEnd: <end rule>, <seq number>, <day number>,
<weekday number>, <month number>, <time>]
@EndTimeZone
Description specifies a time zone description to be displayed to the user during time services installation.
Standard specifies information to be displayed to the user once the time zone has been selected. This includes the time zone abbreviation and the adjust +/-x:xx:xx from GMT (Greenwich Mean Time) or UTC (Universal Coordinated Time).
If Daylight exists, it specifies that daylight savings time exists for part of the year. It also specifies the daylight abbreviation, and the adjust +/-x:xx:xx from standard time.
DSTStart and DSTEnd specify the rule (w for weekday of month or d for day of month), the sequence number (1-relative), day number (1-relative), weekday number (1-relative), month number (1-relative), and time on a 24-hour clock for daylight savings time.
@TimeZone
Description: "United States, Mountain Time Zone",
Standard: "MST", '7:00'
Daylight: "MDT", '+1:00'
DSTStart: w, 1, 1, 1, 4, '2:00'
DSTEnd: w, 6, 1, 1, 10, '2:00'
Description: "United States, Central Time Zone",
Standard: "CST", '6:00'
Daylight: "CDT", '+1:00'
DSTStart: w, 1, 1, 1, 4, '2:00'
DSTEnd: w, 6, 1, 1, 10, '2:00'
@EndTimeZone
Two time zone descriptions are displayed. When one is selected, the time parameters are filled in according to the above information, and the user can verify or edit them.
@TranslateModule
<old driver name1>,<new driver name1>,
<old driver name2>,<new driver name2>,
...
@EndTrandlateModuel
@TranslateModule is used internally by NETMAIN.ILS. It specifies that a disk or LAN driver name has been changed for the previous release. The name will be changed in the STARTUP.NCF or AUTOEXEC.NCF file during an upgrade.
@Version <major version>.<minor version>
The @Version string represents the version of the script file (and its corresponding script data). For the NETMAIN.ILS script file, @Version must be greater than or equal to the expected version of the installation NLM. If any included script files contain version numbers, all the numbers must match. @Version should be incremented each time a new script is released.
In product scripts, the version string is entirely optional. A version string in a product script is not compared with the installation NLM, but all included product scripts must have matching version strings.
@Version 1.01
The version string in the installation is compared with this version string. If they do not match, the installation prompts for a different file. All included scripts with a @Version descriptor will be checked for matching version strings (see @IncludeFile
@EndIncludeFile).
Command <command handler name>
Command specifies the name of an optional command handler for commands not included in this file. The command handler name must be eight characters or less and correspond to the name of an NLM that exports external command entry points.
Command ICMD.NLM
ICMD.NLM provides external command support (see External Command Syntax). It supports the command syntax described in this document, plus additional commands.
CopyDriverToServer <target_directory_path>, <file_spec>, <source_volume>, <source_description>
CopyDriverToServer replaces driver files in <target_directory_path> with new driver files. The source files are assumed to be those on the distribution CD (which might have been copied to a user-specified directory).
<file_spec> is the name of the file to be copied, and can be of the form *.LAN, *.DSK, <directory>/*.LAN or <directory>/*.DSK. <source_volume> specifies the name of a diskette volume label and <source_description> specifies the string used to prompt for the diskettes. If the installation source is a CD-ROM or network drive, <source_volume> and <source_description> are ignored (although these fields must be present in the command).
CopyDriverToServer SYSTEM, '*.LAN', 'NETWARE-3', "NetWare diskette [3]"
The *.LAN files are copied to the SYS:SYSTEM directory.
CopyDriverToStartup <file_spec>, <source_volume>, <source_description>
CopyDriverToStartup replaces driver files in the startup or boot directory (where STARTUP.NCF is) with new driver files. The source files are assumed to be those on the distribution CD (which might have been copied to a user-specified directory). <file_spec> names the files to be copied, and can be *.LAN, *.DSK, <directory>/*.LAN or <directory>/*.DSK. <source_volume> specifies the name of a diskette volume label and <source_description> specifies the string used to prompt for the diskette. If the installation source is a CD or network drive, <source_volume> and <source_description> will be ignored (although these fields must be present in the command).
CopyDriverToStartup '*.LAN', 'NETWARE-3', "NetWare diskette [3]"
The *.LAN files are copied to the user-designated DOS startup directory where the server boot files reside.
CopyToServer <target_directory_path>, <file_spec>, <source_volume>, <source_description>
CopyToServer specifies a file (or a group of files using wildcards) to copy to the system volume of the server.
<target_directory_path> is a directory path relative to SYS: where the files will be copied. <file_spec> names the files to be copied; it might be in the "directory/file" form to copy files from a subdirectory. <source_volume> specifies the name of a diskette volume label and <source_description> specifies the string used to prompt for the diskettes. If the installation source is a CD-ROM or network drive, the <source_volume> and <source_description> fields are ignored (although these fields must be present in the command).
CopyToServer 'SYSTEM', '*.*', 'SYSTEM-2', "NetWare diskette [4]"
Files matching the DOS file specification (including DOS wildcard names) are copied from the volume SYSTEM-2 (or from a user-specified hard disk or network directory) to directory SYS:SYSTEM. If the volume SYSTEM-2 is not present, the user will be prompted to insert the NetWare CD.
CopyToStartup <file_spec>, <source_volume>, <source_description>
CopyToStartup copies files to the startup or boot directory (where STARTUP.NCF is). The source files are assumed to be those on the distribution diskettes (which might have been copied to a user-specified directory).
<file_spec> names the files to be copied. To copy files from a subdirectory, <file_spec> can be of the form "directory/file". <source_volume> specifies the name of a diskette volume label and <source_description> specifies the string used to prompt for the diskettes. If the installation source is a CD or network drive, <source_volume> and <source_description> are ignored (although these fields must be present in the command).
CopyToStartup 'SERVER.EXE', 'SYSTEM-3', "NetWare diskette [3]"
SERVER.EXE is copied to the user-designated DOS startup directory where the server boot files will reside.
Exec <filename>
Exec issues the operating system command LOAD <filename>, pauses until the child NLM unloads, then continues executing. To load from other subdirectories of the system volume besides \SYSTEM, specify a filename (SYS:/<directory>/<file> and <directory>/<file>).
Exec MY.NLM
MY.NLM will be loaded and executed. Exec will follow the normal NLM search path to find MY.NLM. Control will return to the installation after Exec exits and unloads.
ProductRecord <product ID (string)>, <record type>, <record data>
ProductRecord creates a record in the product database with the ID string <product ID> and the record type and data indicated.
ProductRecord MYPROD, 1, "Description for my product"
This creates a product description record for MYPROD with the quoted description.
RegisterLanguage <language ID>, <language name>
RegisterLanguage renames <language ID> to the respective name <language name>. This exists typically to allow non-standard languages to be registered when they are installed.
RegisterLanguage 17, TURKISH
This command aliases TURKISH to ID 17.
SaveLanguageFile <file>
SaveLanguageFile copies <file> in the DOS startup directory to the directory indicated by the old language ID <startup directory>/<old language ID>. This might involve creating a new directory. If the directory path for the new file does not exist, it will be created.
SaveLanguageFile SERVER.MSG
If the current language ID is 4, SERVER.MSG in the DOS startup directory (BOOT directory) is copied to the subdirectory 4 in the DOS startup directory.
Spawn <file name>
Spawn issues the operating system command LOAD <file_name>, then the installation continues to execute. See Exec.
Spawn MY.NLM
The MY.NLM file is loaded and executed. Spawn follows the normal NLM search path to find MY.NLM. The installation and the child NLM both execute, sharing the CPU through context switches.