前のトピック: 動的に検出されたダイアログ ボックス次のトピック: アクション スクリプト


ダイアログ ボックスの検証スクリプト

インストール ダイアログ ボックスに入力された値の組み合わせを検証するには、ダイアログ ボックスの検証スクリプトを使用します。 このスクリプトを使用するには、プリインストール コンポーネントに検証用のスクリプト ファイルを追加する必要があります。 ダイアログ ボックス内で、ダイアログ ボックス全体または特定の入力フィールドのユーザ データを検証できます。

ダイアログ ボックスに入力されたすべてのユーザ データの検証

ダイアログ ボックスの検証スクリプトは、インストール ダイアログ ボックスの[次へ]ボタンをクリックすると実行されます。 その後、インストール ダイアログ ボックスに入力されたすべてのパラメータ値がシェル環境に渡されます。 検証が成功した場合、スクリプトによってゼロ(0)が返されます。 エラーの場合は、スクリプトによって、プロトタイプ ファイルの Resource セクションに、一致するエラー テキストの番号が返されます。 参照されているエラー テキスト番号は、1 ~ 255 の範囲内である必要があります。 対応するエラー テキストがない場合、エラー メッセージにテキスト番号が表示されます。

入力された値 $LOCALE および $DATE の検証例は、以下のとおりです。 英語のロケールが入力されている場合は、データ フィールドに日付が入らない(またはドイツ語での日付表示になる)ことがあります。

#!/bin/sh
# If one of the parameters $LOCALE or $DATE is not set,
# error message 1 is printed
[ ! "$LOCALE" -o ! "$DATE" ] && exit 1
# If an English locale has been entered, the date field
# must not contain any dot
[ "$LOCALE" = "en_US" -a `echo "$DATE" | grep "." 2>/dev/null 1>&2; echo $?` -eq 0 ] && exit 2
# exit without error message
exit 0

特定の入力フィールドに入力されたユーザ データの検証

テキスト フィールド(#textfield)、インストール ディレクトリ(#instdir)、およびパスワード フィールド(#passwordfield)の検証スクリプトを指定できます。 これらの検証スクリプトは、ユーザが入力フィールドから移動したときに実行されます。 検証スクリプトが実行される前に[次へ]ボタンをクリックすると、再度これらのスクリプトが呼び出されます。 入力したパラメータ値は、スクリプトにシェル パラメータとして渡されます。 検証が成功した場合、スクリプトによってゼロ(0)が返されます。 エラーの場合は、スクリプトによって、プロトタイプ ファイルの Resource セクションに、一致するエラー テキストの番号が返されます。 参照されているエラー テキスト番号は、1 ~ 255 の範囲内である必要があります。 対応するエラー テキストがない場合、エラー メッセージにテキスト番号が表示されます。

以下に、ディレクトリ名が完全に正しいかどうかを確認(パラメータ $INSTDIR)する例を示します。

#!/bin/sh
# If the parameters $INSTDIR is not set, error message 1 is printed
[ ! "$INSTDIR" ] && exit 1
# If the parameters $INSTDIR does not start with a slash,
# error message 2 is printed
[ `expr "$INSTDIR" : '¥(.¥)'` != "/" ] && exit 2
# exit without error message
exit 0

検証スクリプトからのログ情報の提供

ログ情報は、以下のようにダイアログ ボックスの検証スクリプトにあるパラメータ PIF_LOG_FILE を使用して取得できます。

if [ $VERBOSE -eq 1 -a -w "$PIF_LOG_FILE" ]
then
  echo "LOG INFORMATION TEXT" >> "$PIF_LOG_FILE"
fi