2.9 KiB
Les scripts
Un paquet YunoHost doit contenir cinq scripts Shell : install
, remove
, upgrade
, backup
et restore
. Un 6ème script change_url
peut aussi être ajouté de façon optionnelle
Ces scripts seront exécutés en tant que root
sur les serveurs YunoHost.
Des exemples de ces scripts sont disponibles dans l'application d'exemple
Utilisation
Vous devez tout mettre dans le script d’install
pour que votre application soit entièrement installée. Cela signifie que vous devez installer les dépendances, créer les répertoires requis, initialiser les bases de données nécessaires, copier les sources et configurer tout dans l’unique script install
(et bien sûr faire la procédure inverse dans le script remove
).
Il est possible d'utiliser des helpers et d'importer une librairie de fonction par exemple depuis un fichier _common.sh
.
Variables disponibles pour tous ces scripts
YNH_CWD
Cette variable contient le chemin du répertoire de travail courant du contexte d'exécution du script. Elle peut être utile pour retrouver le chemin initial si on s'est déplacé pendant l'exécution du script. Elle est utilisée par certains helpers pour être sûr d'utiliser le bon.
YNH_APP_ID
Contient l'identifiant de l'application sans le numéro d'instance
Exemple: strut
YNH_APP_INSTANCE_NAME
Contient le nom d'instance qui sera utilisé dans de nombreuses situation pour pouvoir gérer l'installation multiple d'une même app.
Exemple: strut__3
YNH_APP_INSTANCE_NUMBER
Contient le numéro de l'instance. Attention il ne s'agit pas forcément du nombre d'instance toujours installée, car une ancienne application peut avoir été désinstallée.
Exemple: 3
Variables spécifiques pour install
YNH_APP_ARG_XXXXXXX
Pour chaque question posée lors de l'installation, une variable d'environnement est disponible.
Par exemple, si dans le manifest nous avons une question de cette forme
{
"name": "domain",
"type": "domain",
"ask": {
"en": "Choose a domain for OpenSondage",
"fr": "Choisissez un nom de domaine pour OpenSondage",
"de": "Wählen Sie bitte einen Domain für OpenSondage"
},
"example": "domain.org"
}
Le nom de la question domain
donc dans le script on peut accéder à cette variable via $YNH_APP_ARG_DOMAIN. L'usage est de créer une variable plus courte comme ceci:
domain=$YNH_APP_ARG_DOMAIN
Variables spécifiques pour change_url
YNH_APP_OLD_DOMAIN
L'ancien domaine où était installée l'app.
YNH_APP_OLD_PATH
L'ancien chemin où était installée l'app.
YNH_APP_NEW_DOMAIN
Le nouveau domaine où doit être installée l'app.
YNH_APP_NEW_PATH
Le nouveau chemin où doit être installée l'app.