From ac34dabbf4faecf8e324f701c2945e74b8623f88 Mon Sep 17 00:00:00 2001 From: tcely Date: Mon, 9 Jun 2025 08:19:43 -0400 Subject: [PATCH 1/2] Resolve bundles in restart_services.sh --- tubesync/restart_services.sh | 53 ++++++++++++++++++++++++++---------- 1 file changed, 39 insertions(+), 14 deletions(-) diff --git a/tubesync/restart_services.sh b/tubesync/restart_services.sh index bb34d809..abb372c6 100755 --- a/tubesync/restart_services.sh +++ b/tubesync/restart_services.sh @@ -1,26 +1,51 @@ #!/usr/bin/env sh -dir='/run/service' +_dir='/run/service' svc_path() ( - cd "${dir}" + cd "${_dir}" && realpath -e -s "$@" ) +_bundles="$( + find '/etc/s6-overlay/s6-rc.d' -mindepth 2 -maxdepth 2 \ + -name 'type' \ + -execdir grep -F -q -e bundle '{}' ';' \ + -printf '%P\n' | \ + sed -e 's,/type$,,' ; +)" +is_a_bundle() { + local bundle + for bundle in ${_bundles} + do + if [ "$1" = "${bundle}" ] + then + return 0 + fi + done + return 1 +} + if [ 0 -eq $# ] then - set -- \ - $( cd "${dir}" && svc_path tubesync*-worker ) \ - "$( svc_path gunicorn )" \ - "$( svc_path nginx )" + set -- $(/command/s6-rc list user | grep -v -e '-init$') fi -for service in $( svc_path "$@" ) +for arg in "$@" do - printf -- 'Restarting %-28s' "${service#${dir}/}..." - _began="$( date '+%s' )" - /command/s6-svc -wr -r "${service}" - _ended="$( date '+%s' )" - printf -- '\tcompleted (in %2.1d seconds).\n' \ - "$( expr "${_ended}" - "${_began}" )" + _svcs="${arg}" + if is_a_bundle "${arg}" + then + _svcs="$(/command/s6-rc list "${arg}" | grep -v -e '-init$')" + fi + for service in $(svc_path ${_svcs}) + do + printf -- 'Restarting %-28s' "${service#${dir}/}..." + _began="$( date '+%s' )" + /command/s6-svc -wr -r "${service}" + _ended="$( date '+%s' )" + printf -- '\tcompleted (in %2.1d seconds).\n' \ + "$( expr "${_ended}" - "${_began}" )" + done done -unset -v _began _ended service +unset -v _began _ended _svcs arg service +unset -v _bundles _dir From 032bd15d79e369add69a18f0d919b6645426b2a2 Mon Sep 17 00:00:00 2001 From: tcely Date: Mon, 9 Jun 2025 08:28:18 -0400 Subject: [PATCH 2/2] fixup: missed a dir => _dir change --- tubesync/restart_services.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tubesync/restart_services.sh b/tubesync/restart_services.sh index abb372c6..3c1d981b 100755 --- a/tubesync/restart_services.sh +++ b/tubesync/restart_services.sh @@ -39,7 +39,7 @@ do fi for service in $(svc_path ${_svcs}) do - printf -- 'Restarting %-28s' "${service#${dir}/}..." + printf -- 'Restarting %-28s' "${service#${_dir}/}..." _began="$( date '+%s' )" /command/s6-svc -wr -r "${service}" _ended="$( date '+%s' )"