Rubrique précédente: Boîtes de dialogue détectées de façon dynamiqueRubrique suivante: Scripts d'actions


Scripts de validation de boîte de dialogue

Pour valider la combinaison de valeurs entrées dans une boîte de dialogue d'installation, vous pouvez fournir un script de validation de boîte de dialogue. Le fichier de script de validation doit être ajouté à un composant de préinstallation. A l'intérieur d'une boîte de dialogue, vous pouvez valider les données utilisateur depuis la boîte de dialogue complète ou depuis des champs d'entrée spécifiques.

Validation de toutes les données utilisateur entrées dans la boîte de dialogue

Le script de vérification de la boîte de dialogue est exécuté lorsque vous cliquez sur Suivant dans la boîte de dialogue d'installation. Toutes les valeurs de paramètres entrées dans les boîtes de dialogue d'installation sont ensuite passées au moyen de l'environnement shell. Le script doit renvoyer zéro (0) si la vérification a réussi. En cas d'erreur, le script doit renvoyer le numéro du texte d'un message d'erreur correspondant, situé dans la section ressources du fichier prototype. Le numéro du texte du message d'erreur doit être compris entre 1 et 255. Si le texte du message d'erreur est manquant, le numéro du texte est affiché dans le message d'erreur.

Les exemples de vérification suivants vérifient deux valeurs entrées, $LOCALE et $DATE. Si un paramètre régional anglais est entré, le champ date peut ne pas contenir de date (ou alors la date est au format allemand).

#!/bin/sh
# Si l'un des paramètres $LOCALE ou $DATE n'est pas défini,
# le message d'erreur 1 est imprimé
[ ! "$LOCALE" -o ! "$DATE" ] && exit 1
# Si un paramètre régional anglais a été entré, le champ date
# ne doit pas contenir de point
[ "$LOCALE" = "en_US" -a `echo "$DATE" | grep "." 2>/dev/null 1>&2; echo $?` -eq 0 ] && exit 2
# sortie sans message d'erreur
exit 0

Validation de données utilisateur entrées dans des champs spécifiques

Vous pouvez spécifier des scripts de validation pour les champs de texte (#textfield), les répertoires d'installation (#instdir) et les champs de mot de passe (#passwordfield). Ces scripts de validation sont exécutés lorsque l'utilisateur quitte le champ d'entrée. Ces scripts sont également appelés, si le bouton Suivant est sélectionné avant que le script de vérification de la boîte de dialogue ne soit appelé. La valeur du paramètre entrée est transmise au script en tant que paramètre shell. Le script doit renvoyer zéro (0) si la vérification a réussi. En cas d'erreur, le script doit renvoyer le numéro du texte d'un message d'erreur correspondant, situé dans la section ressources du fichier prototype. Le numéro du texte du message d'erreur doit être compris entre 1 et 255. Si le texte du message d'erreur est manquant, le numéro du texte est affiché dans le message d'erreur.

L'exemple suivant vérifie si un nom de répertoire est complet (paramètre $INSTDIR) :

#!/bin/sh
# Si le paramètre $INSTDIR n'est pas défini, le message d'erreur 1 est imprimé
[ ! "$INSTDIR" ] && exit 1
# Si le paramètre $INSTDIR ne commence pas par le caractère barre oblique,
# le message d'erreur 2 est imprimé
[ `expr "$INSTDIR" : '\(.\)'` != "/" ] && exit 2
# sortie sans message d'erreur
exit 0

Fourniture d'informations de journalisation à partir d'un script de validation

Des informations de journalisation peuvent être fournies par le paramètre PIF_LOG_FILE dans les scripts de validation de boîte de dialogue, comme suit :

si [ $VERBOSE -eq 1 -a -w "$PIF_LOG_FILE" ]
alors
  echo "JOURNALISER LE TEXTE D'INFORMATIONS" >> "$PIF_LOG_FILE"
fi