Écrit par Neil Deakin.
Traduit par Alain B. (17/03/2004).
Page originale :
http://www.xulplanet.com/tutorials/xultu/xpiadv.html
Cette section décrit quelques spécificités supplémentaires des programmes d'installation.
La section précédente décrivait un programme d'installation simple. Vous pouvez souhaiter réaliser quelques opérations plus élaborées pendant l'installation. Par exemple, vous voulez installer un paquetage seulement si certaines conditions sont réunies, comme d'avoir une librairie particulière installée.
En complément de l'objet Install
, l'objet File
est également disponible pendant le script d'installation. Il fournit
quelques fonctions qui peuvent être employées pour examiner
et modifier des fichiers sur le disque. Vous pouvez les utiliser pour déplacer,
copier ou effacer des fichiers avant où après que les fichiers
du paquetage soient installés. Par exemple, vous voulez peut être
faire une sauvegarde de quelques fichiers d'abord.
Le code ci dessous fera une copie du fichier "/bin/grep" dans le répertoire "/main".
var binFolder=getFolder("file:///","bin");
var grep=getFolder(binFolder,"grep");
var mainFolder=getFolder("file:///","main");
File.copy(grep,mainFolder);
La première ligne va renseigner un pointeur sur le répertoire /bin. Le texte file:/// est une chaîne de caractères spéciale qui correspond à la racine du système de fichiers. A partir de ce pointeur, nous récupérons le fichier grep qui se trouve dans le répertoire bin. Si ce fichier n'existe pas, une erreur sera signalée au processus d'installation. Ensuite, nous pointons sur le répertoire main, toujours à partir de la racine du système de fichiers. Finalement, nous appelons la fonction File.copy qui copie le fichier source vers sa destination.
Des fonctions existent également pour déplacer, renommer et exécuter des fichiers. Ainsi, vous pouvez déplacer des fichiers qui peuvent se trouver en conflit avec votre paquetage.
Vous voulez certainement intercepter d'éventuelles erreurs proprement. Cela peut se produire si un fichier ou un répertoire ne peut pas être trouvé, si la capacité du disque n'est pas suffisant ou pour toutes autres raisons.
Il vous suffit d'appeler la fonction getLastError
pour
déterminer si une erreur a été rencontrée. Si
elle renvoie SUCCESS, aucune erreur ne s'est produite. Autrement,
elle renvoie un nombre qui indique le code d'erreur. Vous pouvez appeler
cette fonction en tout point de votre script d'installation pour déterminer
si une erreur est survenue lors de la dernière opération effectuée.
Si une erreur se produit, vous voulez sûrement interrompre l'installation. Vous pouvez également vouloir afficher un message d'erreur pour l'utilisateur. Par exemple, vous pourriez mettre le script suivant à la fin de votre script d'installation :
if (getLastError() == SUCCESS){
performInstall();
}
else {
cancelInstall();
}
Les codes d'erreur susceptibles d'être renvoyés par la fonction
getLastError
sont listés dans le fichier source
de Mozilla nsInstall.h.
Pendant l'installation, un suivi d'événements contenant les
opérations réalisées est créé. Il contiendra
également toutes les erreurs qui se sont produites. Ces événements
peuvent être trouvés dans le fichier 'install.log' dans le
répertoire d'installation de Mozilla. Un bloc de texte sera ajouté
à ce fichier à chaque installation effectuée.
La fonction logComment
peut être utilisée
pour écrire un texte dans ce fichier d'événements.
Elle nécessite un seul argument qui est le contenu du texte.
Le Tutoriel XUL est terminé.