Les hooks permettent de déclencher un script lorsqu'une action est effectuée par le système.
Le cas le plus évident, est l'ajout d'un utilisateur. Si l'app dispose d'un hook `post_user_create`, ce hook sera déclenché dés qu'un utilisateur sera ajouté.
Cela permet donc à une application d'exécuter des actions en fonction des évènements intervenant sur le système.
### Liste des hooks disponibles
-`post_domain_add`
Après l'ajout d'un domaine.
-`post_domain_remove`
Après la suppression d'un domaine.
-`post_user_create`
Après l'ajout d'un utilisateur.
-`post_user_delete`
Après la suppression d'un utilisateur.
-`post_iptable_rules`
Après le rechargement du parefeu.
-`pre_backup_delete`
Avant la suppression d'un backup.
-`post_backup_delete`
Après la suppression d'un backup.
-`post_app_addaccess`
Après l'ajout d'un utilisateur autorisé sur une application.
-`post_app_removeaccess`
Après la suppression de l'autorisation d'un utilisateur sur une application.
-`post_app_clearaccess`
Après l'effacement de toute les règles d'accès sur une application.
Tout d'abord, il faut comprendre qu'un hook est un simple script bash qui sera exécuté par YunoHost lorsque l'évènement indiqué se présentera.
Pour ajouter un hook à YunoHost, il faut utiliser un dossier "hooks" à la racine du package de l'application. Puis dans celui-ci mettre votre script sous le nom du hooks correspondant.
Pour un hook `post_user_create`, le script qui devra être exécuté pour ce hook doit simplement être placé dans `hooks/post_user_create` dans le package.
Lors de l'installation et de l'upgrade, les scripts dans le dossier hooks seront dupliqués dans le dossier `/etc/yunohost/hooks.d/` dans le dossier correspondant au hook, puis sous le nom `50-$app`.
Un hook `conf_regen` est appelé 2 fois, une première fois après analyse de la configuration et avant une éventuelle modification des fichiers, puis une seconde fois après application des modifications, si il y a eu des modifications.