Descriptors and Commands

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.


Syntax Conventions


Comments


Syntax

; <text>

Description

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.


Example

; THIS IS A COMMENT


Descriptors


@CDName


Syntax
@CDName <name>

Description

@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.


Example

@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


Syntax
@DeletePartition <comma-separated list of partition types>

Description

@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.


Example

If the following appears in NETMAIN.ILS, only NetWare 386 partitions are eligible for deletion:

@DeletePartition 65


@Driver
@EndDriver


Syntax
@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

Description

@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.

Variable Description

<subdirectory name>

Specifies the directory to read. For floppy or network installations, the subdirectory is typically NULL. For a CD-ROM, the subdirectory is usually the common directory where drivers are found.

<vol label>

Specifies the name of the corresponding media volume.

<disk description>

Specifies the printed name on the media that contains the include file.


Example

@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
@EndFileSet


Syntax
@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

Description

@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:

File Action

MANDATORY

Always executed.

CORE

Always copied in a sequential install, but optionally copied in the selective install/maintain mode.

OPTIONAL

Displayed to the user for selection. They are defaulted to on (selected for copy).

OPTIONAL_OFF

Displayed for the user to choose, but are defaulted to off.

BOOT

Copied, depending on the kind of installation and whether the server was launched from the directory that the user is installing to.

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:

Attribute1 Meaning

00000001

Read Only

00000002

Hidden

00000004

System

00000008

Execute

00000010

Subdirectory

00000020

Archive

00000080

Shareable

00000700

Smode

00001000

Transaction

00004000

Read Audit

00008000

Write Audit

00010000

Immediate Purge

00020000

Rename Inhibit

00040000

Delete Inhibit

00080000

Copy Inhibit

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.

Flag Meaning

00000001

Do only for a custom install.

00000002

Do in first-phase copy (bit reset = second-phase).

00000004

Do only if NetWare for OS/2*.

00000008

Do only if native (not SFT IIITM or NetWare for OS/2).

00000010

Do only if SFT III.

00000020

Do only for a simplified installation.

00000040

Do only for maintenance mode.

00000080

Do only for upgrade.

00000100

Do only if installing from front end (NWNSTLL.EXE).

00000200

Do only if not installing from front end (NWNSTLL.EXE).


Example

@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
@EndIncludeFile


Syntax
@IncludeFile 
File: <filename>
[DiskDescription: "...[disk description]..."]
[DiskVolume: 11 char vol name>]
@EndIncludeFile

Description

@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).


Example

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
@EndMessageFile


Syntax
@MessageFile 
File: <filename>
[Version: <message file version number>]
@EndMessageFile

Description

@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:

  1. The current directory.
  2. The NLS directory corresponding to the current language.
  3. The default definitions of <message file version number> "string."

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.


Example

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
@EndAppObject


Syntax
@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

Description

Use @StartAppObject to create NDS objects for use with the Novell® Application LauncherTM (NAL) product. It is used with NetWare for Small Business.

Variable Description

AppPlatform

The list of supported platforms the Application object can run on.

AppName

The NDS name of the object as viewed in NetWare Administrator.

AppPath

The UNC path and filename of the executable to be launched by the object.

AppDescription

The description that shows on Novell Application Launcher.

AppContact

The list of usernames to contact for resolving issues with the Application object.

AppMapping

A list of drive mappings that are made for the application to run correctly.

AppIcon

The filename and location of the applications icon.

AppWorkingDir

The startup directory for the application.

AppUser

A list of users authorized to run the application.


Example

@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
@EndOther


Syntax
@Other 
Description: "...[text]..."
[DiskDescription: "...[disk description]..."]
[DiskVolume: <11 char vol name>]
[File: <filename>]
[Flags: <flags>]
@EndOther

Description

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.

Flag Meaning

00000001

Load product environment (clib, btrieve, product.dat).

00000002

Product included in product box (NETMAIN.ILS description).

00000004

Display product should be displayed in simplified installation.

00000008

Display product only in simplified installation.

00000010

Display product only in maintenance installation.

00000020

Display product only in upgrade.

00000040

Display product only in NetWare for OS/2 install.

00000080

Display product only in native installation.

00000100

Display product only in SFT III installation.

00000200

Display product only if started from front end (NWNSTLL.EXE).

00000400

Display product only if not started from front end (NWNSTLL.EXE).

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.


Example

@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


Syntax
@SyntaxVersion <major version>.<minor version>

Description

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.


Example

@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
@EndStartSchemaMod


Syntax
@StartSchemaMod 
SchemaFileName: <Filename>, <Description>
@EndSchemaMod

Description

@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.


Example

@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
@EndTimeZone


Syntax
@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

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.

Sequence number means:

1

First

(ignore day number)

2

Second

(ignore day number)

3

Third

(ignore day number)

4

Fourth

(ignore day number)

5

Fifth

(ignore day number)

6

Last

(ignore day number)

7

>= day number

 

8

<= day number

 


Example

@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
@EndTranslateModule


Syntax
@TranslateModule  
<old driver name1>,<new driver name1>,
<old driver name2>,<new driver name2>,
...
@EndTrandlateModuel

Description

@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


Syntax
@Version <major version>.<minor version>

Description

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.


Example

@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
).


Commands


Command


Syntax
Command <command handler name>

Description

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.


Example

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


Syntax
CopyDriverToServer <target_directory_path>, <file_spec>, <source_volume>, <source_description>

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).


Example

CopyDriverToServer SYSTEM, '*.LAN', 'NETWARE-3', "NetWare diskette [3]"

The *.LAN files are copied to the SYS:SYSTEM directory.


CopyDriverToStartup


Syntax
CopyDriverToStartup <file_spec>, <source_volume>, <source_description>

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).


Example

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


Syntax
CopyToServer <target_directory_path>, <file_spec>, <source_volume>, <source_description>

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).


Example

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


Syntax
CopyToStartup <file_spec>, <source_volume>, <source_description>

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).


Example

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


Syntax

Exec <filename>


Description

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>).


Example

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


Syntax
ProductRecord <product ID (string)>, <record type>, <record data>

Description

ProductRecord creates a record in the product database with the ID string <product ID> and the record type and data indicated.

Record Type Data

0

Version string (10 char max)

1

Product description (60 char max)

[2]

Configuration NLM command line(255 char max)

[3]

Configuration text file specification (255 char max)

[4]

Uninstall NLM command line (255 char max)

[5]

Delete AUTOEXEC line (255 char max)

[6]

Delete STARTUP line (255 char max)

[7]

Delete file line (255 char max)


Example

ProductRecord MYPROD, 1, "Description for my product"

This creates a product description record for MYPROD with the quoted description.


RegisterLanguage


Syntax
RegisterLanguage <language ID>, <language name>

Description

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.


Example

RegisterLanguage 17, TURKISH

This command aliases TURKISH to ID 17.


SaveLanguageFile


Syntax
SaveLanguageFile <file>

Description

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.


Example

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


Syntax
Spawn <file name>

Description

Spawn issues the operating system command LOAD <file_name>, then the installation continues to execute. See Exec .


Example

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.