diff --git a/data/hooks/conf_regen/02-ssl b/data/hooks/conf_regen/02-ssl index 5d14cb3d1..c58da53b4 100755 --- a/data/hooks/conf_regen/02-ssl +++ b/data/hooks/conf_regen/02-ssl @@ -13,6 +13,8 @@ do_pre_regen() { } do_post_regen() { + regen_conf_files=$1 + sudo mkdir -p "/etc/yunohost/certs/yunohost.org" sudo mkdir -p "${ssl_dir}/"{ca,certs,crl,newcerts} @@ -62,7 +64,7 @@ case "$1" in do_pre_regen $3 ;; post) - do_post_regen + do_post_regen $3 ;; *) echo "hook called with unknown argument \`$1'" >&2 diff --git a/data/hooks/conf_regen/03-ssh b/data/hooks/conf_regen/03-ssh index bbf9591e5..b00e1ac33 100755 --- a/data/hooks/conf_regen/03-ssh +++ b/data/hooks/conf_regen/03-ssh @@ -18,8 +18,12 @@ do_pre_regen() { } do_post_regen() { - [[ -f /etc/yunohost/from_script ]] \ - || sudo service ssh restart + regen_conf_files=$1 + + if [[ ! -f /etc/yunohost/from_script ]]; then + [[ -z "$regen_conf_files" ]] \ + || sudo service ssh restart + fi } FORCE=$2 @@ -29,7 +33,7 @@ case "$1" in do_pre_regen $3 ;; post) - do_post_regen + do_post_regen $3 ;; *) echo "hook called with unknown argument \`$1'" >&2 diff --git a/data/hooks/conf_regen/09-nslcd b/data/hooks/conf_regen/09-nslcd index 9ae1a8192..0cf3d3374 100755 --- a/data/hooks/conf_regen/09-nslcd +++ b/data/hooks/conf_regen/09-nslcd @@ -11,7 +11,10 @@ do_pre_regen() { } do_post_regen() { - sudo service nslcd restart + regen_conf_files=$1 + + [[ -z "$regen_conf_files" ]] \ + || sudo service nslcd restart } FORCE=$2 @@ -21,7 +24,7 @@ case "$1" in do_pre_regen $3 ;; post) - do_post_regen + do_post_regen $3 ;; *) echo "hook called with unknown argument \`$1'" >&2 diff --git a/data/hooks/conf_regen/12-metronome b/data/hooks/conf_regen/12-metronome index 251b9309d..767f9db4e 100755 --- a/data/hooks/conf_regen/12-metronome +++ b/data/hooks/conf_regen/12-metronome @@ -39,8 +39,13 @@ do_pre_regen() { } do_post_regen() { + regen_conf_files=$1 + + # fix some permissions + sudo chown -R metronome: /var/lib/metronome/ + sudo chown -R metronome: /etc/metronome/conf.d/ + # retrieve variables - # TODO: retrieve only changed/new domains domain_list=$(sudo yunohost domain list --output-as plain --quiet) # create metronome directories for domains @@ -48,12 +53,8 @@ do_post_regen() { sudo mkdir -p "/var/lib/metronome/${domain//./%2e}/pep" done - # fix permissions - sudo chown -R metronome: /var/lib/metronome/ - sudo chown -R metronome: /etc/metronome/conf.d/ - - # TODO: only restart if conf changed - sudo service metronome restart + [[ -z "$regen_conf_files" ]] \ + || sudo service metronome restart } FORCE=$2 @@ -63,7 +64,7 @@ case "$1" in do_pre_regen $3 ;; post) - do_post_regen + do_post_regen $3 ;; *) echo "hook called with unknown argument \`$1'" >&2 diff --git a/data/hooks/conf_regen/15-nginx b/data/hooks/conf_regen/15-nginx index c9b0a6baa..2d8f73112 100755 --- a/data/hooks/conf_regen/15-nginx +++ b/data/hooks/conf_regen/15-nginx @@ -48,8 +48,11 @@ do_pre_regen() { } do_post_regen() { + regen_conf_files=$1 + + [ -z "$regen_conf_files" ] && exit 0 + # retrieve variables - # TODO: retrieve only changed/new domains domain_list=$(sudo yunohost domain list --output-as plain --quiet) # create NGINX conf directories for domains @@ -57,7 +60,6 @@ do_post_regen() { sudo mkdir -p "/etc/nginx/conf.d/${domain}.d" done - # TODO: only restart if conf changed sudo service nginx restart } @@ -68,7 +70,7 @@ case "$1" in do_pre_regen $3 ;; post) - do_post_regen + do_post_regen $3 ;; *) echo "hook called with unknown argument \`$1'" >&2 diff --git a/data/hooks/conf_regen/19-postfix b/data/hooks/conf_regen/19-postfix index df62a0350..f7b702ae2 100755 --- a/data/hooks/conf_regen/19-postfix +++ b/data/hooks/conf_regen/19-postfix @@ -31,8 +31,10 @@ do_pre_regen() { } do_post_regen() { - # TODO: only restart if conf changed - sudo service postfix restart + regen_conf_files=$1 + + [[ -z "$regen_conf_files" ]] \ + || sudo service postfix restart } FORCE=$2 @@ -42,7 +44,7 @@ case "$1" in do_pre_regen $3 ;; post) - do_post_regen + do_post_regen $3 ;; *) echo "hook called with unknown argument \`$1'" >&2 diff --git a/data/hooks/conf_regen/28-rmilter b/data/hooks/conf_regen/28-rmilter index a46284bc8..0021f2b7e 100755 --- a/data/hooks/conf_regen/28-rmilter +++ b/data/hooks/conf_regen/28-rmilter @@ -12,16 +12,18 @@ do_pre_regen() { } do_post_regen() { + regen_conf_files=$1 + # retrieve variables - # TODO: retrieve only new domains domain_list=$(sudo yunohost domain list --output-as plain --quiet) # create DKIM key for domains for domain in $domain_list; do - [ ! -f /etc/dkim/$domain.mail.key ] && { + domain_key="/etc/dkim/${domain}.mail.key" + [ ! -f $domain_key ] && { sudo opendkim-genkey --domain="$domain" \ --selector=mail --directory=/etc/dkim - sudo mv /etc/dkim/mail.private "/etc/dkim/${domain}.mail.key" + sudo mv /etc/dkim/mail.private "$domain_key" sudo mv /etc/dkim/mail.txt "/etc/dkim/${domain}.mail.txt" } done @@ -30,10 +32,15 @@ do_post_regen() { sudo chown _rmilter /etc/dkim/*.mail.key sudo chmod 400 /etc/dkim/*.mail.key - # Reload systemd daemon, ensure that the socket is listening and stop - # the service. It will be started again by the socket as needed. - # TODO: only restart if conf changed - sudo systemctl -q daemon-reload + [ -z "$regen_conf_files" ] && exit 0 + + # reload systemd daemon + [[ "$regen_conf_files" =~ rmilter\.socket ]] && { + sudo systemctl -q daemon-reload + } + + # ensure that the socket is listening and stop the service - it will be + # started again by the socket as needed sudo systemctl -q start rmilter.socket sudo systemctl -q stop rmilter.service 2>&1 || true } @@ -45,7 +52,7 @@ case "$1" in do_pre_regen $3 ;; post) - do_post_regen + do_post_regen $3 ;; *) echo "hook called with unknown argument \`$1'" >&2 diff --git a/data/hooks/conf_regen/37-avahi-daemon b/data/hooks/conf_regen/37-avahi-daemon index 6eba8c729..71e811e3f 100755 --- a/data/hooks/conf_regen/37-avahi-daemon +++ b/data/hooks/conf_regen/37-avahi-daemon @@ -11,7 +11,10 @@ do_pre_regen() { } do_post_regen() { - sudo service avahi-daemon restart + regen_conf_files=$1 + + [[ -z "$regen_conf_files" ]] \ + || sudo service avahi-daemon restart } FORCE=$2 @@ -21,7 +24,7 @@ case "$1" in do_pre_regen $3 ;; post) - do_post_regen + do_post_regen $3 ;; *) echo "hook called with unknown argument \`$1'" >&2 diff --git a/data/hooks/conf_regen/40-glances b/data/hooks/conf_regen/40-glances index 7fe40c2d8..d21405b3d 100755 --- a/data/hooks/conf_regen/40-glances +++ b/data/hooks/conf_regen/40-glances @@ -11,7 +11,10 @@ do_pre_regen() { } do_post_regen() { - sudo service glances restart + regen_conf_files=$1 + + [[ -z "$regen_conf_files" ]] \ + || sudo service glances restart } FORCE=$2 @@ -21,7 +24,7 @@ case "$1" in do_pre_regen $3 ;; post) - do_post_regen + do_post_regen $3 ;; *) echo "hook called with unknown argument \`$1'" >&2 diff --git a/data/hooks/conf_regen/43-dnsmasq b/data/hooks/conf_regen/43-dnsmasq index 100cd4b46..2d4de7b1c 100755 --- a/data/hooks/conf_regen/43-dnsmasq +++ b/data/hooks/conf_regen/43-dnsmasq @@ -41,8 +41,9 @@ do_pre_regen() { } do_post_regen() { - # TODO: only restart if conf changed - sudo service dnsmasq reload \ + regen_conf_files=$1 + + [[ -z "$regen_conf_files" ]] \ || sudo service dnsmasq restart } @@ -53,7 +54,7 @@ case "$1" in do_pre_regen $3 ;; post) - do_post_regen + do_post_regen $3 ;; *) echo "hook called with unknown argument \`$1'" >&2 diff --git a/data/hooks/conf_regen/46-nsswitch b/data/hooks/conf_regen/46-nsswitch index 352346e68..b8a5b56ed 100755 --- a/data/hooks/conf_regen/46-nsswitch +++ b/data/hooks/conf_regen/46-nsswitch @@ -11,7 +11,10 @@ do_pre_regen() { } do_post_regen() { - sudo service nscd restart + regen_conf_files=$1 + + [[ -z "$regen_conf_files" ]] \ + || sudo service nscd restart } FORCE=$2 @@ -21,7 +24,7 @@ case "$1" in do_pre_regen $3 ;; post) - do_post_regen + do_post_regen $3 ;; *) echo "hook called with unknown argument \`$1'" >&2 diff --git a/data/hooks/conf_regen/52-fail2ban b/data/hooks/conf_regen/52-fail2ban index 88af82326..16bedee0a 100755 --- a/data/hooks/conf_regen/52-fail2ban +++ b/data/hooks/conf_regen/52-fail2ban @@ -15,7 +15,10 @@ do_pre_regen() { } do_post_regen() { - sudo service fail2ban restart + regen_conf_files=$1 + + [[ -z "$regen_conf_files" ]] \ + || sudo service fail2ban restart } FORCE=$2 @@ -25,7 +28,7 @@ case "$1" in do_pre_regen $3 ;; post) - do_post_regen + do_post_regen $3 ;; *) echo "hook called with unknown argument \`$1'" >&2