Share your "hooks" to apply custom configurations- Partagez vos "hooks" pour appliquer des configurations personnelles

Tu peux essayer de faire un hook en effet… J’essaierai cela, sans être sûr, à tester:

/etc/yunohost/hooks.d/conf_regen/17-nginx_jellyfin

#!/bin/bash
action=$1
pending_dir=$4
nginx_dir=$pending_dir/../nginx/etc/nginx
nginx_jellyfin_conf=$(find /etc/nginx -name jellyfin.conf)
[[ $action == "pre" ]] || exit 0
[[ -d $nginx_dir ]] || exit 0
[[ -e $nginx_jellyfin_conf ]] || exit 0
echo '
        allow X.X.X.X/8;
        allow X.X.X.X.X;
        deny all;' >> $nginx_jellyfin_conf

Merci d’avoir pris le temps. Cela s’exécute bien mais le echo est mis après le “}” et non juste avant du coup je pense que la config sera foireuse tel que. Mais en tout cas ça s’execute bien.

il faudrait mettre le pointeur avant le “}”.

Bonjour,

Dans ce cas remplace echo par sed.
Plusieurs solutions selon comment est fait ton fichier. Si le “}” est en fin de fichier comme je crois le comprendre, tu peux essayer ceci:

action=$1
pending_dir=$4
nginx_dir=$pending_dir/../nginx/etc/nginx
nginx_jellyfin_conf=$(find /etc/nginx -name jellyfin.conf)
[[ $action == "pre" ]] || exit 0
[[ -d $nginx_dir ]] || exit 0
[[ -e $nginx_jellyfin_conf ]] || exit 0
sed -i "$ i allow X.X.X.X/8;\nallow X.X.X.X.X;\ndeny all;"  $nginx_jellyfin_conf

Merci.

J’ai donc essayé et le contenu se place après le dernier “}”. Du coup après quelque recherche voici la bonne formule.

#!/bin/bash
action=$1
pending_dir=$4
nginx_dir=$pending_dir/../nginx/etc/nginx
nginx_jellyfin_conf=$(find /etc/nginx -name jellyfin.conf)
[[ $action == "pre" ]] || exit 0
[[ -d $nginx_dir ]] || exit 0
[[ -e $nginx_jellyfin_conf ]] || exit 0
sed -i '/}/i'"allow XXX.XXX.XXX.XXX/8;\nallow XXX.XXX.XXX.XXX;\ndeny all;"  $nginx_jellyfin_conf

Merciiiiiii

C’est étonnant, je viens de tester et ça fonctionne bien comme je l’ai indiqué avec un fichier de test semblable. :thinking:
N’aurais-tu pas oublié le i? Dans ce cas le 1er “A” de allow est considéré comme l’option append de sed et le bloc se place à la fin mais la 1ère ligne serait en plus tronquée, il manquerait le “A” sur allow.

Ta solution fonctionne évidemment mais uniquement s’il y a un seul } dans le fichier. Si ce n’était pas le cas, tu ajouterais le bloc allow/deny avant chaque }.

J’ai copié collé tel que ton message, j’ai testé deux fois quand même au cas ou et il m’a bien collé le texte à la suite. C’est pour ça que je me suis orienté ailleurs. Mais merci de m’avoir orienté sur SED ;).

Le fichier de JF comporte qu’un seul “}” donc pas dérangeant dans le cas présent ;).

Merciii.