From 28ae46e8c4db5183e49e82f3b3826990d2fe3b69 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 21 Dec 2022 16:24:51 +0100 Subject: [PATCH] :hammer: Migrate old-style S6 scripts to s6-rc.d --- .../airsonos/dependencies.d/init-airsonos | 0 .../etc/s6-overlay/s6-rc.d/airsonos/finish | 27 +++++++++++++++++++ .../s6-rc.d}/airsonos/run | 1 + .../etc/s6-overlay/s6-rc.d/airsonos/type | 1 + .../s6-rc.d/init-airsonos/dependencies.d/base | 0 .../s6-rc.d/init-airsonos/run} | 1 + .../etc/s6-overlay/s6-rc.d/init-airsonos/type | 1 + .../etc/s6-overlay/s6-rc.d/init-airsonos/up | 1 + .../s6-rc.d/user/contents.d/airsonos | 0 .../s6-rc.d/user/contents.d/init-airsonos | 0 .../rootfs/etc/services.d/airsonos/finish | 11 -------- 11 files changed, 32 insertions(+), 11 deletions(-) create mode 100644 airsonos/rootfs/etc/s6-overlay/s6-rc.d/airsonos/dependencies.d/init-airsonos create mode 100755 airsonos/rootfs/etc/s6-overlay/s6-rc.d/airsonos/finish rename airsonos/rootfs/etc/{services.d => s6-overlay/s6-rc.d}/airsonos/run (98%) create mode 100644 airsonos/rootfs/etc/s6-overlay/s6-rc.d/airsonos/type create mode 100644 airsonos/rootfs/etc/s6-overlay/s6-rc.d/init-airsonos/dependencies.d/base rename airsonos/rootfs/etc/{cont-init.d/airsonos.sh => s6-overlay/s6-rc.d/init-airsonos/run} (96%) create mode 100644 airsonos/rootfs/etc/s6-overlay/s6-rc.d/init-airsonos/type create mode 100644 airsonos/rootfs/etc/s6-overlay/s6-rc.d/init-airsonos/up create mode 100644 airsonos/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/airsonos create mode 100644 airsonos/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-airsonos delete mode 100755 airsonos/rootfs/etc/services.d/airsonos/finish diff --git a/airsonos/rootfs/etc/s6-overlay/s6-rc.d/airsonos/dependencies.d/init-airsonos b/airsonos/rootfs/etc/s6-overlay/s6-rc.d/airsonos/dependencies.d/init-airsonos new file mode 100644 index 0000000..e69de29 diff --git a/airsonos/rootfs/etc/s6-overlay/s6-rc.d/airsonos/finish b/airsonos/rootfs/etc/s6-overlay/s6-rc.d/airsonos/finish new file mode 100755 index 0000000..01c3c00 --- /dev/null +++ b/airsonos/rootfs/etc/s6-overlay/s6-rc.d/airsonos/finish @@ -0,0 +1,27 @@ +#!/command/with-contenv bashio +# shellcheck shell=bash +# ============================================================================== +# Home Assistant Community Add-on: AirSonos +# Take down the S6 supervision tree when the AirSonos server 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/airsonos/rootfs/etc/services.d/airsonos/run b/airsonos/rootfs/etc/s6-overlay/s6-rc.d/airsonos/run similarity index 98% rename from airsonos/rootfs/etc/services.d/airsonos/run rename to airsonos/rootfs/etc/s6-overlay/s6-rc.d/airsonos/run index 871d248..4d77c96 100755 --- a/airsonos/rootfs/etc/services.d/airsonos/run +++ b/airsonos/rootfs/etc/s6-overlay/s6-rc.d/airsonos/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Home Assistant Community Add-on: AirSonos # Runs the AirSonos server diff --git a/airsonos/rootfs/etc/s6-overlay/s6-rc.d/airsonos/type b/airsonos/rootfs/etc/s6-overlay/s6-rc.d/airsonos/type new file mode 100644 index 0000000..5883cff --- /dev/null +++ b/airsonos/rootfs/etc/s6-overlay/s6-rc.d/airsonos/type @@ -0,0 +1 @@ +longrun diff --git a/airsonos/rootfs/etc/s6-overlay/s6-rc.d/init-airsonos/dependencies.d/base b/airsonos/rootfs/etc/s6-overlay/s6-rc.d/init-airsonos/dependencies.d/base new file mode 100644 index 0000000..e69de29 diff --git a/airsonos/rootfs/etc/cont-init.d/airsonos.sh b/airsonos/rootfs/etc/s6-overlay/s6-rc.d/init-airsonos/run similarity index 96% rename from airsonos/rootfs/etc/cont-init.d/airsonos.sh rename to airsonos/rootfs/etc/s6-overlay/s6-rc.d/init-airsonos/run index 4c34d0b..79bc36a 100755 --- a/airsonos/rootfs/etc/cont-init.d/airsonos.sh +++ b/airsonos/rootfs/etc/s6-overlay/s6-rc.d/init-airsonos/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Home Assistant Community Add-on: AirSonos # Checks latency settings before starting the AirSonos server diff --git a/airsonos/rootfs/etc/s6-overlay/s6-rc.d/init-airsonos/type b/airsonos/rootfs/etc/s6-overlay/s6-rc.d/init-airsonos/type new file mode 100644 index 0000000..bdd22a1 --- /dev/null +++ b/airsonos/rootfs/etc/s6-overlay/s6-rc.d/init-airsonos/type @@ -0,0 +1 @@ +oneshot diff --git a/airsonos/rootfs/etc/s6-overlay/s6-rc.d/init-airsonos/up b/airsonos/rootfs/etc/s6-overlay/s6-rc.d/init-airsonos/up new file mode 100644 index 0000000..aaa1714 --- /dev/null +++ b/airsonos/rootfs/etc/s6-overlay/s6-rc.d/init-airsonos/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-airsonos/run \ No newline at end of file diff --git a/airsonos/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/airsonos b/airsonos/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/airsonos new file mode 100644 index 0000000..e69de29 diff --git a/airsonos/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-airsonos b/airsonos/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-airsonos new file mode 100644 index 0000000..e69de29 diff --git a/airsonos/rootfs/etc/services.d/airsonos/finish b/airsonos/rootfs/etc/services.d/airsonos/finish deleted file mode 100755 index 0148ad3..0000000 --- a/airsonos/rootfs/etc/services.d/airsonos/finish +++ /dev/null @@ -1,11 +0,0 @@ -#!/command/with-contenv bashio -# ============================================================================== -# Home Assistant Community Add-on: AirSonos -# Take down the S6 supervision tree when the AirSonos server fails -# ============================================================================== -if [[ "${1}" -ne 0 ]] && [[ "${1}" -ne 256 ]]; then - bashio::log.warning "AirSonos crashed, halting add-on" - /run/s6/basedir/bin/halt -fi - -bashio::log.info "AirSonos stopped, restarting..."