diff --git a/Dockerfile b/Dockerfile index 1e3993f..0c940e6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -88,7 +88,8 @@ RUN \ requests \ requests_oauthlib \ typing-extensions \ - unidecode && \ + unidecode \ + shyaml && \ printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \ echo "**** cleanup ****" && \ apk del --purge \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 8ea6829..18bb2c3 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -89,7 +89,8 @@ RUN \ requests \ requests_oauthlib \ typing-extensions \ - unidecode && \ + unidecode \ + shyaml && \ printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \ echo "**** cleanup ****" && \ apk del --purge \ diff --git a/package_versions.txt b/package_versions.txt index e308386..707d7d1 100755 --- a/package_versions.txt +++ b/package_versions.txt @@ -256,6 +256,7 @@ serd-libs 0.32.2-r0 apk shaderc 2024.0-r2 apk shadow 4.16.0-r1 apk shared-mime-info 2.4-r2 apk +shyaml 0.6.2 python six 1.17.0 python skalibs-libs 2.14.3.0-r0 apk sord-libs 0.16.16-r0 apk diff --git a/readme-vars.yml b/readme-vars.yml index f41b285..029d203 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -83,6 +83,8 @@ init_diagram: | "beets:latest" <- Base Images # changelog changelogs: + - {date: "30.12.25:", desc: "Add s6 overlay for drop2beets"} + - {date: "30.12.25:", desc: "Check if plugin web is enabled before running"} - {date: "27.01.25:", desc: "Rebase to Alpine 3.21."} - {date: "01.10.24:", desc: "Add packages required for Discogs plugin."} - {date: "28.08.24:", desc: "Rebase to Alpine 3.20, switch from Pillow to Imagemagick."} diff --git a/root/etc/s6-overlay/s6-rc.d/svc-beets/dependencies.d/init-services b/root/etc/s6-overlay/s6-rc.d/beets-web/dependencies.d/init-services similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/svc-beets/dependencies.d/init-services rename to root/etc/s6-overlay/s6-rc.d/beets-web/dependencies.d/init-services diff --git a/root/etc/s6-overlay/s6-rc.d/svc-beets/notification-fd b/root/etc/s6-overlay/s6-rc.d/beets-web/notification-fd similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/svc-beets/notification-fd rename to root/etc/s6-overlay/s6-rc.d/beets-web/notification-fd diff --git a/root/etc/s6-overlay/s6-rc.d/beets-web/run b/root/etc/s6-overlay/s6-rc.d/beets-web/run new file mode 100755 index 0000000..6f75fd1 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/beets-web/run @@ -0,0 +1,16 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +plugins=$(beet config --default | shyaml get-value plugins) + +if [[ " $plugins " == *" web "* ]]; then + if [[ -z ${LSIO_NON_ROOT_USER} ]]; then + exec \ + s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 8337" \ + s6-setuidgid abc beet web + else + exec \ + s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 8337" \ + beet web + fi +fi diff --git a/root/etc/s6-overlay/s6-rc.d/svc-beets/type b/root/etc/s6-overlay/s6-rc.d/beets-web/type similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/svc-beets/type rename to root/etc/s6-overlay/s6-rc.d/beets-web/type diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-beets b/root/etc/s6-overlay/s6-rc.d/drop2beets/dependencies.d/init-services similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-beets rename to root/etc/s6-overlay/s6-rc.d/drop2beets/dependencies.d/init-services diff --git a/root/etc/s6-overlay/s6-rc.d/drop2beets/run b/root/etc/s6-overlay/s6-rc.d/drop2beets/run new file mode 100755 index 0000000..46f3828 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/drop2beets/run @@ -0,0 +1,16 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +if pip show drop2beets >/dev/null 2>&1; then + plugins=$(beet config --default | shyaml get-value plugins) + + if [[ " $plugins " == *" drop2beets "* ]]; then + if [[ -z ${LSIO_NON_ROOT_USER} ]]; then + exec \ + s6-setuidgid abc beet dropbox + else + exec \ + beet dropbox + fi + fi +fi diff --git a/root/etc/s6-overlay/s6-rc.d/drop2beets/type b/root/etc/s6-overlay/s6-rc.d/drop2beets/type new file mode 100644 index 0000000..5883cff --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/drop2beets/type @@ -0,0 +1 @@ +longrun diff --git a/root/etc/s6-overlay/s6-rc.d/svc-beets/run b/root/etc/s6-overlay/s6-rc.d/svc-beets/run deleted file mode 100755 index 13c6cb3..0000000 --- a/root/etc/s6-overlay/s6-rc.d/svc-beets/run +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/with-contenv bash -# shellcheck shell=bash - -if [[ -z ${LSIO_NON_ROOT_USER} ]]; then - exec \ - s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 8337" \ - s6-setuidgid abc beet web -else - exec \ - s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 8337" \ - beet web -fi diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/beets-web b/root/etc/s6-overlay/s6-rc.d/user/contents.d/beets-web new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/drop2beets b/root/etc/s6-overlay/s6-rc.d/user/contents.d/drop2beets new file mode 100644 index 0000000..e69de29