doc/pages/06.contribute/10.packaging_apps/06.scripts/packaging_apps_scripts.fr.md
2022-08-04 19:50:47 +02:00

2.9 KiB
Raw Blame History

title template taxonomy routes
Scripts docs
category
docs
default
/packaging_apps_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 dinstall 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 lunique 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 situations 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'instances toujours installées, 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.