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.
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 hook 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, s' il y a eu des modifications.