Solaris 8 Advanced Installation Guide

Creating a custom_probes File

If the rule and probe keywords described in Table 18–3 and Table 20–1 are not enough for your needs, you can define your own custom rule or probe keywords by creating a custom_probes file.

What Is a custom_probes File?

The custom_probes file, which must be located in the same JumpStart directory as the rules file, is a Bourne shell script that contains two types of functions.

Table 20–2 Types of Functions You Define in custom_probes

Type of Function 

Description 

Probe 

Gathers the information you want or does the actual work and sets a corresponding SI_ environment variable you define. Probe functions become probe keywords.

Comparison 

Calls a corresponding probe function, compares the output of the probe function, and returns 0 if the keyword matches or 1 if the keyword doesn't match. Comparison functions become rule keywords. 

Syntax of the custom_probes File

The custom_probes file can contain any valid Bourne shell command, variable, or algorithm.


Note –

You can define probe and comparison functions that require a single argument in the custom_probes file. When you subsequently use the corresponding custom probe keyword in the rules file, the argument after the keyword is interpreted (as $1).

When you subsequently use the corresponding custom rule keyword in the rules file, the argument is interpreted starting after the keyword and ending before the next && or begin script, whichever comes first.


The custom_probes file must:

To improve clarity and organization, define all probe functions first, at the top of the file, followed by all comparison functions.

Syntax of Function Names in custom_probes

The name of a probe function must begin with probe_. The name of a comparison function must begin with cmp_.

Functions that begin with probe_ define new probe keywords (the function probe_tcx defines the new probe keyword tcx, for example). Functions that begin with cmp_ define new rule keywords (cmp_tcx defines the new rule keyword tcx, for example).

Example of a custom_probes File

This custom_probes file contains a probe and comparison function that tests for the presence of a TCX graphics card.


Note –

You can find additional examples of probe and comparison functions in:


#!/bin/sh
# 
# custom_probe script to test for the presence of a TCX graphics card.
# 

# 
# PROBE FUNCTIONS
# 
probe_tcx() {
  SI_TCX=`modinfo | grep tcx | nawk '{print $6}'`
  export SI_TCX
}

# 
# COMPARISON FUNCTIONS
# 
cmp_tcx() {
  probe_tcx

  if [ "X${SI_TCX}" = "X${1}" ]; then
     return 0
  else
     return 1
  fi
}

Example of a Custom Probe Keyword Used in a rules File

This example rules file shows the use of the probe keyword defined in the preceding example (tcx). If a TCX graphics card is installed and found in a system, profile_tcx is run. Otherwise, profile is run.


Note –

Always place probe keywords at or near the beginning of the rules file to ensure that they are read and run before other rule keywords (that may rely on them).


probe tcx
tcx     tcx     -     profile_tcx     -
any     any     -     profile         -

To Create a custom_probes File

  1. Using a text editor of your choice, create a Bourne shell script text file named custom_probes.

  2. In the custom_probes text file, define the probe and comparison functions you want.


    Note –

    You can define probe and comparison functions that require arguments in the custom_probes file. When you subsequently use the corresponding custom probe keyword in the rules file, the arguments after the keyword are interpreted in sequence (as $1, $2, and so on).

    When you subsequently use the corresponding custom rule keyword in the rules file, the arguments are interpreted in sequence starting after the keyword and ending before the next && or begin script, whichever comes first.


  3. Save the custom_probes file in the JumpStart directory (next to the rules file).

    Ensure that root owns the rules file and that its permissions are set to 644.