From d4a72c5cb30e25b2886ace4f82e462f45d1e9132 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Thu, 22 Dec 2022 13:33:29 +0100 Subject: [PATCH] :hammer: Migrate old-style S6 scripts to s6-rc.d (#327) --- .../etc/{php8 => php81}/conf.d/99-grocy.ini | 0 .../etc/{php8 => php81}/php-fpm.d/.gitkeep | 0 .../{php8 => php81}/templates/php-fpm.gtpl | 0 .../s6-rc.d/init-grocy/dependencies.d/base | 0 .../s6-rc.d/init-grocy/run} | 1 + .../etc/s6-overlay/s6-rc.d/init-grocy/type | 1 + .../etc/s6-overlay/s6-rc.d/init-grocy/up | 1 + .../s6-rc.d/init-nginx/dependencies.d/base | 0 .../s6-rc.d/init-nginx/run} | 1 + .../etc/s6-overlay/s6-rc.d/init-nginx/type | 1 + .../etc/s6-overlay/s6-rc.d/init-nginx/up | 1 + .../s6-rc.d/init-php-fpm/dependencies.d/base | 0 .../s6-rc.d/init-php-fpm/run} | 9 ++++--- .../etc/s6-overlay/s6-rc.d/init-php-fpm/type | 1 + .../etc/s6-overlay/s6-rc.d/init-php-fpm/up | 1 + .../s6-rc.d/nginx/dependencies.d/init-nginx | 0 .../s6-rc.d/nginx/dependencies.d/php-fpm | 0 .../etc/s6-overlay/s6-rc.d/nginx/finish | 26 ++++++++++++++++++ .../s6-rc.d}/nginx/run | 0 .../rootfs/etc/s6-overlay/s6-rc.d/nginx/type | 1 + .../s6-rc.d/php-fpm/dependencies.d/init-grocy | 0 .../php-fpm/dependencies.d/init-php-fpm | 0 .../etc/s6-overlay/s6-rc.d/php-fpm/finish | 27 +++++++++++++++++++ .../s6-rc.d}/php-fpm/run | 3 ++- .../etc/s6-overlay/s6-rc.d/php-fpm/type | 1 + .../s6-rc.d/user/contents.d/init-grocy | 0 .../s6-rc.d/user/contents.d/init-nginx | 0 .../s6-rc.d/user/contents.d/init-php-fpm | 0 .../s6-overlay/s6-rc.d/user/contents.d/nginx | 0 .../s6-rc.d/user/contents.d/php-fpm | 0 grocy/rootfs/etc/services.d/nginx/finish | 11 -------- grocy/rootfs/etc/services.d/php-fpm/finish | 11 -------- 32 files changed, 70 insertions(+), 27 deletions(-) rename grocy/rootfs/etc/{php8 => php81}/conf.d/99-grocy.ini (100%) rename grocy/rootfs/etc/{php8 => php81}/php-fpm.d/.gitkeep (100%) rename grocy/rootfs/etc/{php8 => php81}/templates/php-fpm.gtpl (100%) create mode 100644 grocy/rootfs/etc/s6-overlay/s6-rc.d/init-grocy/dependencies.d/base rename grocy/rootfs/etc/{cont-init.d/grocy.sh => s6-overlay/s6-rc.d/init-grocy/run} (97%) create mode 100644 grocy/rootfs/etc/s6-overlay/s6-rc.d/init-grocy/type create mode 100644 grocy/rootfs/etc/s6-overlay/s6-rc.d/init-grocy/up create mode 100644 grocy/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/dependencies.d/base rename grocy/rootfs/etc/{cont-init.d/nginx.sh => s6-overlay/s6-rc.d/init-nginx/run} (97%) create mode 100644 grocy/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/type create mode 100644 grocy/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/up create mode 100644 grocy/rootfs/etc/s6-overlay/s6-rc.d/init-php-fpm/dependencies.d/base rename grocy/rootfs/etc/{cont-init.d/php-fpm.sh => s6-overlay/s6-rc.d/init-php-fpm/run} (73%) create mode 100644 grocy/rootfs/etc/s6-overlay/s6-rc.d/init-php-fpm/type create mode 100644 grocy/rootfs/etc/s6-overlay/s6-rc.d/init-php-fpm/up create mode 100644 grocy/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/init-nginx create mode 100644 grocy/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/php-fpm create mode 100755 grocy/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish rename grocy/rootfs/etc/{services.d => s6-overlay/s6-rc.d}/nginx/run (100%) create mode 100644 grocy/rootfs/etc/s6-overlay/s6-rc.d/nginx/type create mode 100644 grocy/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/dependencies.d/init-grocy create mode 100644 grocy/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/dependencies.d/init-php-fpm create mode 100755 grocy/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/finish rename grocy/rootfs/etc/{services.d => s6-overlay/s6-rc.d}/php-fpm/run (98%) create mode 100644 grocy/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/type create mode 100644 grocy/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-grocy create mode 100644 grocy/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-nginx create mode 100644 grocy/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-php-fpm create mode 100644 grocy/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/nginx create mode 100644 grocy/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/php-fpm delete mode 100755 grocy/rootfs/etc/services.d/nginx/finish delete mode 100755 grocy/rootfs/etc/services.d/php-fpm/finish diff --git a/grocy/rootfs/etc/php8/conf.d/99-grocy.ini b/grocy/rootfs/etc/php81/conf.d/99-grocy.ini similarity index 100% rename from grocy/rootfs/etc/php8/conf.d/99-grocy.ini rename to grocy/rootfs/etc/php81/conf.d/99-grocy.ini diff --git a/grocy/rootfs/etc/php8/php-fpm.d/.gitkeep b/grocy/rootfs/etc/php81/php-fpm.d/.gitkeep similarity index 100% rename from grocy/rootfs/etc/php8/php-fpm.d/.gitkeep rename to grocy/rootfs/etc/php81/php-fpm.d/.gitkeep diff --git a/grocy/rootfs/etc/php8/templates/php-fpm.gtpl b/grocy/rootfs/etc/php81/templates/php-fpm.gtpl similarity index 100% rename from grocy/rootfs/etc/php8/templates/php-fpm.gtpl rename to grocy/rootfs/etc/php81/templates/php-fpm.gtpl diff --git a/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-grocy/dependencies.d/base b/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-grocy/dependencies.d/base new file mode 100644 index 0000000..e69de29 diff --git a/grocy/rootfs/etc/cont-init.d/grocy.sh b/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-grocy/run similarity index 97% rename from grocy/rootfs/etc/cont-init.d/grocy.sh rename to grocy/rootfs/etc/s6-overlay/s6-rc.d/init-grocy/run index 738dc28..2b6eb16 100755 --- a/grocy/rootfs/etc/cont-init.d/grocy.sh +++ b/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-grocy/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Home Assistant Community Add-on: Grocy # Sets up Grocy before the server starts diff --git a/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-grocy/type b/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-grocy/type new file mode 100644 index 0000000..bdd22a1 --- /dev/null +++ b/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-grocy/type @@ -0,0 +1 @@ +oneshot diff --git a/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-grocy/up b/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-grocy/up new file mode 100644 index 0000000..ee17431 --- /dev/null +++ b/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-grocy/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-grocy/run diff --git a/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/dependencies.d/base b/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/dependencies.d/base new file mode 100644 index 0000000..e69de29 diff --git a/grocy/rootfs/etc/cont-init.d/nginx.sh b/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/run similarity index 97% rename from grocy/rootfs/etc/cont-init.d/nginx.sh rename to grocy/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/run index 8a7ba90..98eb963 100755 --- a/grocy/rootfs/etc/cont-init.d/nginx.sh +++ b/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Home Assistant Community Add-on: Grocy # Configures NGINX for use with Grocy diff --git a/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/type b/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/type new file mode 100644 index 0000000..bdd22a1 --- /dev/null +++ b/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/type @@ -0,0 +1 @@ +oneshot diff --git a/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/up b/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/up new file mode 100644 index 0000000..b3b5b49 --- /dev/null +++ b/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-nginx/run diff --git a/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-php-fpm/dependencies.d/base b/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-php-fpm/dependencies.d/base new file mode 100644 index 0000000..e69de29 diff --git a/grocy/rootfs/etc/cont-init.d/php-fpm.sh b/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-php-fpm/run similarity index 73% rename from grocy/rootfs/etc/cont-init.d/php-fpm.sh rename to grocy/rootfs/etc/s6-overlay/s6-rc.d/init-php-fpm/run index daa59b5..41f177f 100755 --- a/grocy/rootfs/etc/cont-init.d/php-fpm.sh +++ b/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-php-fpm/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Home Assistant Community Add-on: Grocy # Configures PHP-FPM for use with Grocy @@ -10,8 +11,8 @@ bashio::var.json \ port "^9002" \ base "$(bashio::addon.ingress_entry)" \ | tempio \ - -template /etc/php8/templates/php-fpm.gtpl \ - -out /etc/php8/php-fpm.d/ingress.conf + -template /etc/php81/templates/php-fpm.gtpl \ + -out /etc/php81/php-fpm.d/ingress.conf # Generate direct access configuration, if enabled. if bashio::var.has_value "$(bashio::addon.port 80)"; then @@ -19,6 +20,6 @@ if bashio::var.has_value "$(bashio::addon.port 80)"; then name "www" \ port "^9001" \ | tempio \ - -template /etc/php8/templates/php-fpm.gtpl \ - -out /etc/php8/php-fpm.d/www.conf + -template /etc/php81/templates/php-fpm.gtpl \ + -out /etc/php81/php-fpm.d/www.conf fi diff --git a/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-php-fpm/type b/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-php-fpm/type new file mode 100644 index 0000000..bdd22a1 --- /dev/null +++ b/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-php-fpm/type @@ -0,0 +1 @@ +oneshot diff --git a/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-php-fpm/up b/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-php-fpm/up new file mode 100644 index 0000000..8056153 --- /dev/null +++ b/grocy/rootfs/etc/s6-overlay/s6-rc.d/init-php-fpm/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-php-fpm/run diff --git a/grocy/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/init-nginx b/grocy/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/init-nginx new file mode 100644 index 0000000..e69de29 diff --git a/grocy/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/php-fpm b/grocy/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/php-fpm new file mode 100644 index 0000000..e69de29 diff --git a/grocy/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish b/grocy/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish new file mode 100755 index 0000000..2cac857 --- /dev/null +++ b/grocy/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish @@ -0,0 +1,26 @@ +#!/command/with-contenv bashio +# ============================================================================== +# Home Assistant Community Add-on: Grocy +# Take down the S6 supervision tree when Nginx fails +# ============================================================================== +declare exit_code +readonly exit_code_container=$( /run/s6-linux-init-container-results/exitcode + fi + [[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt +elif [[ "${exit_code_service}" -ne 0 ]]; then + if [[ "${exit_code_container}" -eq 0 ]]; then + echo "${exit_code_service}" > /run/s6-linux-init-container-results/exitcode + fi + exec /run/s6/basedir/bin/halt +fi diff --git a/grocy/rootfs/etc/services.d/nginx/run b/grocy/rootfs/etc/s6-overlay/s6-rc.d/nginx/run similarity index 100% rename from grocy/rootfs/etc/services.d/nginx/run rename to grocy/rootfs/etc/s6-overlay/s6-rc.d/nginx/run diff --git a/grocy/rootfs/etc/s6-overlay/s6-rc.d/nginx/type b/grocy/rootfs/etc/s6-overlay/s6-rc.d/nginx/type new file mode 100644 index 0000000..5883cff --- /dev/null +++ b/grocy/rootfs/etc/s6-overlay/s6-rc.d/nginx/type @@ -0,0 +1 @@ +longrun diff --git a/grocy/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/dependencies.d/init-grocy b/grocy/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/dependencies.d/init-grocy new file mode 100644 index 0000000..e69de29 diff --git a/grocy/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/dependencies.d/init-php-fpm b/grocy/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/dependencies.d/init-php-fpm new file mode 100644 index 0000000..e69de29 diff --git a/grocy/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/finish b/grocy/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/finish new file mode 100755 index 0000000..5aa3786 --- /dev/null +++ b/grocy/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/finish @@ -0,0 +1,27 @@ +#!/command/with-contenv bashio +# shellcheck shell=bash +# ============================================================================== +# Home Assistant Community Add-on: Grocy +# Take down the S6 supervision tree when PHP FPM fails +# ============================================================================== +declare exit_code +readonly exit_code_container=$( /run/s6-linux-init-container-results/exitcode + fi + [[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt +elif [[ "${exit_code_service}" -ne 0 ]]; then + if [[ "${exit_code_container}" -eq 0 ]]; then + echo "${exit_code_service}" > /run/s6-linux-init-container-results/exitcode + fi + exec /run/s6/basedir/bin/halt +fi diff --git a/grocy/rootfs/etc/services.d/php-fpm/run b/grocy/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/run similarity index 98% rename from grocy/rootfs/etc/services.d/php-fpm/run rename to grocy/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/run index 96eaf7d..7b23a3c 100755 --- a/grocy/rootfs/etc/services.d/php-fpm/run +++ b/grocy/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Home Assistant Community Add-on: Grocy # Runs the PHP-FPM daemon @@ -89,4 +90,4 @@ GROCY_CULTURE=$(bashio::config "culture") GROCY_CURRENCY=$(bashio::config "currency") GROCY_ENTRY_PAGE=$(bashio::config 'entry_page') -exec php-fpm8 -R --nodaemonize +exec php-fpm81 -R --nodaemonize diff --git a/grocy/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/type b/grocy/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/type new file mode 100644 index 0000000..5883cff --- /dev/null +++ b/grocy/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/type @@ -0,0 +1 @@ +longrun diff --git a/grocy/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-grocy b/grocy/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-grocy new file mode 100644 index 0000000..e69de29 diff --git a/grocy/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-nginx b/grocy/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-nginx new file mode 100644 index 0000000..e69de29 diff --git a/grocy/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-php-fpm b/grocy/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-php-fpm new file mode 100644 index 0000000..e69de29 diff --git a/grocy/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/nginx b/grocy/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/nginx new file mode 100644 index 0000000..e69de29 diff --git a/grocy/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/php-fpm b/grocy/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/php-fpm new file mode 100644 index 0000000..e69de29 diff --git a/grocy/rootfs/etc/services.d/nginx/finish b/grocy/rootfs/etc/services.d/nginx/finish deleted file mode 100755 index 7164ed1..0000000 --- a/grocy/rootfs/etc/services.d/nginx/finish +++ /dev/null @@ -1,11 +0,0 @@ -#!/command/with-contenv bashio -# ============================================================================== -# Home Assistant Community Add-on: Grocy -# Take down the S6 supervision tree when Nginx fails -# ============================================================================== -if [[ "${1}" -ne 0 ]] && [[ "${1}" -ne 256 ]]; then - bashio::log.warning "NGINX crashed, halting add-on" - /run/s6/basedir/bin/halt -fi - -bashio::log.info "NGINX stopped, restarting..." diff --git a/grocy/rootfs/etc/services.d/php-fpm/finish b/grocy/rootfs/etc/services.d/php-fpm/finish deleted file mode 100755 index abd4030..0000000 --- a/grocy/rootfs/etc/services.d/php-fpm/finish +++ /dev/null @@ -1,11 +0,0 @@ -#!/command/with-contenv bashio -# ============================================================================== -# Home Assistant Community Add-on: Grocy -# Take down the S6 supervision tree when PHP FPM fails -# ============================================================================== -if [[ "${1}" -ne 0 ]] && [[ "${1}" -ne 256 ]]; then - bashio::log.warning "PHP-FPM crashed, halting add-on" - /run/s6/basedir/bin/halt -fi - -bashio::log.info "PHP-FPM stopped, restarting..."