Les greffons des bouteilles vous permettent de personnaliser ces dernières
lors de leur création. Parce qu’ils sont implémentés sous forme de scripts,
ils sont très flexibles. Par exemple ils peuvent modifier les lettres des
lecteurs, mais aussi le registre, le contenu des fichiers du disque
C:
, etc. Ils sont particulièrement utiles pour adapter
une bouteille distribuée sur plusieurs ordinateurs, ou pour adapter une
bouteille publiée à chaque utilisateur.
Les greffons des bouteilles peuvent être créés à trois niveaux différents :
Les greffons globaux agissent sur toutes les bouteilles de l’ordinateur, y
compris les bouteilles utilisateur. Aussi ils sont idéaux pour adapter les
bouteilles à la configuration de l’ordinateur. Ces greffons se trouvent dans
le répertoire $CX_ROOT/support/scripts.d
.
Les greffons utilisateur sont identiques aux greffons globaux mais sont
exécutés après ces derniers et ne s’appliquent qu’aux bouteilles de cet
utilisateur. Ils se trouvent dans le répertoire ~/.cxoffice/scripts.d
.
Enfin, chaque bouteille a son propre jeu de greffons. Ceux-ci sont
particulièrement pratiques pour adapter une bouteille publiée à chaque
utilisateur. C’est également le seul type de greffon qui est automatiquement
archivé avec la bouteille et dont l’exécution est donc garantie lorsque la
bouteille est restaurée ultérieurement, même sur un autre ordinateur. Ces
greffons se trouvent dans le dossier scripts.d
de la bouteille.
Chaque greffon est un exécutable, typiquement un script shell, et doit être
placé dans un des dossiers ci-dessus. Le nom du fichier doit être de la
forme nn.nom
, où nn
sont deux
chiffres décimaux indiquant l’ordre dans lequel exécuter les greffons, et où
nom
ne doit pas contenir de point ou de tilde et
indique généralement la fonction du greffon.
Les greffons sont alors appelés comme indiqué lors des évènements suivants :
Lorsque la bouteille est créée
hook
create
type_de_bouteille
Le paramètre type_de_bouteille
indique le type de
bouteille crée, par exemple « win98
».
Lorsque la bouteille est restaurée
hook
restore
Lorsque la bouteille est mise à niveau par une nouvelle version de CrossOver
hook
upgrade-from
version_ancienne_bouteille
Où version_ancienne_bouteille
est la dernière
version de CrossOver a avoir été utilisée avec cette bouteille. Cela peut vous
aider à évaluer les changements à effectuer. Cependant notez que les
greffons ne sont appelés qu’une fois que CrossOver a mis la bouteille à
niveau.
Lorsque la bouteille proxy est créée
hook
create-stub
wineprefix_publié
Ce cas se produit lorsque la bouteille publiée est utilisée dans un compte
utilisateur pour la première fois. La variable d’environnement
$WINEPREFIX
contient alors le chemin de la bouteille proxy
nouvellement crée, tandis que wineprefix_publié
est le chemin de la bouteille publiée qui sert de référence dans /opt/cxoffice/etc
.
Lorsque la bouteille proxy est mise à jour
hook
update-stub
wineprefix_publié
Ce cas se produit lorsque l’administrateur a mis à jour la bouteille publiée
dans wineprefix_publié
et que la bouteille proxy
de l’utilisateur doit à son tour être mise à jour.
Dans tous les cas les greffons sont appelés dans le contexte de Wine. Cela
veut dire qu’ils n’ont pas besoin de l’option --bottle
et
peuvent utiliser les variables d’environnement suivantes :
CX_ROOT
Contient le chemin absolu du dossier où est installé CrossOver.
CX_BOTTLE
Contient le nom de la bouteille actuelle.
WINEPREFIX
Contient le chemin absolu du répertoire de la bouteille.
Les greffons des bouteilles peuvent également utiliser le script wine pour lancer des applications WineLib ou Windows afin de modifier les paramètres de registre ou d’autres aspects de la bouteille.
Voici un exemple de greffon de bouteille qui modifie les lecteurs Windows
afin qu’il n’y ait pas de disque Y:
, et que le disque
H:
pointe sur le dossier $HOME
de
l’utilisateur.
#!/bin/sh rm "$WINEPREFIX/dosdevices/y:" if [ ! -d "$WINEPREFIX/dosdevices/h:" ] then ln -s -f "$HOME" "$WINEPREFIX/dosdevices/h:" fi