From 339306296ea48be145f6c7a5597da910b802f0c7 Mon Sep 17 00:00:00 2001 From: GilbN Date: Sat, 3 Sep 2022 14:44:18 +0200 Subject: [PATCH] Swag and vuetorrent s6-v3 mods --- .../dependencies.d/init-mods | 0 .../init-mod-themepark-add-package/run | 5 + .../init-mod-themepark-add-package/type | 1 + .../s6-rc.d/init-mod-themepark-add-package/up | 1 + .../dependencies.d/init-mods-package-install | 0 .../s6-overlay/s6-rc.d/init-mod-themepark/run | 54 +++++++ .../s6-rc.d/init-mod-themepark/type | 1 + .../s6-overlay/s6-rc.d/init-mod-themepark/up | 1 + .../dependencies.d/init-mod-themepark | 0 .../init-mod-themepark-add-package | 0 .../user/contents.d/init-mod-themepark | 0 .../contents.d/init-mod-themepark-add-package | 0 .../dependencies.d/init-mods | 0 .../init-mod-themepark-add-package/run | 5 + .../init-mod-themepark-add-package/type | 1 + .../s6-rc.d/init-mod-themepark-add-package/up | 1 + .../dependencies.d/init-mods-package-install | 0 .../s6-overlay/s6-rc.d/init-mod-themepark/run | 134 ++++++++++++++++++ .../s6-rc.d/init-mod-themepark/type | 1 + .../s6-overlay/s6-rc.d/init-mod-themepark/up | 1 + .../dependencies.d/init-mod-themepark | 0 .../init-mod-themepark-add-package | 0 .../user/contents.d/init-mod-themepark | 0 .../contents.d/init-mod-themepark-add-package | 0 24 files changed, 206 insertions(+) create mode 100644 docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/dependencies.d/init-mods create mode 100755 docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/run create mode 100644 docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/type create mode 100644 docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/up create mode 100644 docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/dependencies.d/init-mods-package-install create mode 100755 docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run create mode 100644 docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/type create mode 100644 docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/up create mode 100644 docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mod-themepark create mode 100644 docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/dependencies.d/init-mod-themepark-add-package create mode 100644 docker-mods/swag/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-themepark create mode 100644 docker-mods/swag/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-themepark-add-package create mode 100644 docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/dependencies.d/init-mods create mode 100755 docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/run create mode 100644 docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/type create mode 100644 docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/up create mode 100644 docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/dependencies.d/init-mods-package-install create mode 100755 docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run create mode 100644 docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/type create mode 100644 docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/up create mode 100644 docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mod-themepark create mode 100644 docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/dependencies.d/init-mod-themepark-add-package create mode 100644 docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-themepark create mode 100644 docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-themepark-add-package diff --git a/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/dependencies.d/init-mods b/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/dependencies.d/init-mods new file mode 100644 index 00000000..e69de29b diff --git a/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/run b/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/run new file mode 100755 index 00000000..5c18c377 --- /dev/null +++ b/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/run @@ -0,0 +1,5 @@ +#!/usr/bin/with-contenv bash + +if ! [[ -x "$(command -v svn)" ]]; then + echo "subversion" >> /mod-repo-packages-to-install.list +fi diff --git a/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/type b/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/type new file mode 100644 index 00000000..3d92b15f --- /dev/null +++ b/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/type @@ -0,0 +1 @@ +oneshot \ No newline at end of file diff --git a/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/up b/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/up new file mode 100644 index 00000000..12d7a60e --- /dev/null +++ b/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/run \ No newline at end of file diff --git a/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/dependencies.d/init-mods-package-install b/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/dependencies.d/init-mods-package-install new file mode 100644 index 00000000..e69de29b diff --git a/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run b/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run new file mode 100755 index 00000000..962bed88 --- /dev/null +++ b/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run @@ -0,0 +1,54 @@ +#!/usr/bin/with-contenv bash + +echo '-------------------------' +echo '| SWAG theme.park Mod |' +echo '-------------------------' + +# Display variables for troubleshooting +echo -e "Variables set:\\n\ +'TP_BRANCH'=${TP_BRANCH}\\n" + +# Set default +if [[ -z ${TP_BRANCH} ]]; then + echo 'No branch set, defaulting to live' + TP_BRANCH='live' +fi + +if [[ ${TP_BRANCH} == "master" ]]; then + TP_BRANCH='live' +fi + +if [[ ${TP_BRANCH} == "develop" ]]; then + TP_BRANCH='live_develop' +fi + +if [[ ${TP_BRANCH} == "testing" ]]; then + TP_BRANCH='live_testing' +fi + +mkdir -p /config/www/themepark + +SHA_RELEASE=$(curl -sL "https://api.github.com/repos/gilbn/theme.park/commits/${TP_BRANCH}" | jq -r '.sha'); +if [[ ! -f "/config/www/themepark/sha.txt" ]]; then + SHA="" +else + SHA=$(cat /config/www/themepark/sha.txt) +fi +# Downloading fresh webui files from source. +if [[ $SHA != $SHA_RELEASE ]]; then + echo "-----------------------------------------------------" + echo "| Downloading latest files from ${TP_BRANCH} branch |" + echo "-----------------------------------------------------" + svn export --quiet --force "https://github.com/GilbN/theme.park/branches/${TP_BRANCH}/css" /config/www/themepark/css + svn export --quiet --force "https://github.com/GilbN/theme.park/branches/${TP_BRANCH}/resources" /config/www/themepark/resources + svn export --quiet --force "https://github.com/GilbN/theme.park/branches/${TP_BRANCH}/themes.json" /config/www/themepark + svn export --quiet --force "https://github.com/GilbN/theme.park/branches/${TP_BRANCH}/index.html" /config/www/themepark + printf '\nDownload finished\n\n' +fi + +cat <<< "$SHA_RELEASE" > "/config/www/themepark/sha.txt" +cp /themepark-confs/* /config/nginx/proxy-confs + +# permissions +chown -R abc:abc \ + /config/www/themepark \ No newline at end of file diff --git a/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/type b/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/type new file mode 100644 index 00000000..3d92b15f --- /dev/null +++ b/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/type @@ -0,0 +1 @@ +oneshot \ No newline at end of file diff --git a/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/up b/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/up new file mode 100644 index 00000000..be856d4e --- /dev/null +++ b/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-mod-themepark/run \ No newline at end of file diff --git a/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mod-themepark b/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mod-themepark new file mode 100644 index 00000000..e69de29b diff --git a/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/dependencies.d/init-mod-themepark-add-package b/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/dependencies.d/init-mod-themepark-add-package new file mode 100644 index 00000000..e69de29b diff --git a/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-themepark b/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-themepark new file mode 100644 index 00000000..e69de29b diff --git a/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-themepark-add-package b/docker-mods/swag/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-themepark-add-package new file mode 100644 index 00000000..e69de29b diff --git a/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/dependencies.d/init-mods b/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/dependencies.d/init-mods new file mode 100644 index 00000000..e69de29b diff --git a/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/run b/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/run new file mode 100755 index 00000000..16645ac6 --- /dev/null +++ b/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/run @@ -0,0 +1,5 @@ +#!/usr/bin/with-contenv bash + +if ! [[ -x "$(command -v jq)" ]]; then + echo "jq" >> /mod-repo-packages-to-install.list +fi diff --git a/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/type b/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/type new file mode 100644 index 00000000..3d92b15f --- /dev/null +++ b/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/type @@ -0,0 +1 @@ +oneshot \ No newline at end of file diff --git a/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/up b/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/up new file mode 100644 index 00000000..12d7a60e --- /dev/null +++ b/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-mod-themepark-add-package/run \ No newline at end of file diff --git a/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/dependencies.d/init-mods-package-install b/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/dependencies.d/init-mods-package-install new file mode 100644 index 00000000..e69de29b diff --git a/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run b/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run new file mode 100755 index 00000000..8398de61 --- /dev/null +++ b/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/run @@ -0,0 +1,134 @@ +#!/usr/bin/with-contenv bash +APP_FILEPATH='/config/qBittorrent/qBittorrent.conf' +INDEX_FILEPATH='/vuetorrent/public/index.html' +if [ "${TP_HOTIO}" = true ]; then + echo 'Changing to Hotio file paths!' + APP_FILEPATH='/config/config/qBittorrent.conf' + INDEX_FILEPATH='/app/vuetorrent/public/index.html' +fi + +# Backup config +if [[ ! -f "${APP_FILEPATH}.bak" ]]; then + echo "Creating qBittorrent.conf backup in /config." + cp -p ${APP_FILEPATH} "${APP_FILEPATH}.bak" +fi + +# Restore qBittorrent.conf +if [ "${TP_DISABLE_THEME}" = true ]; then + echo "Restoring backup of qBittorrent.conf" + sed -i "s/WebUI\\\AlternativeUIEnabled=.*$/WebUI\\\AlternativeUIEnabled=false/g" "${APP_FILEPATH}"; + exit 0 +fi + +# Display variables for troubleshooting +echo -e "Variables set:\\n\ +'TP_DOMAIN'=${TP_DOMAIN}\\n\ +'TP_COMMUNITY_THEME'=${TP_COMMUNITY_THEME}\\n\ +'TP_SCHEME'=${TP_SCHEME}\\n\ +'TP_THEME'=${TP_THEME}\\n" + +# Set default +if [[ -z ${TP_DOMAIN} ]]; then + echo 'No domain set, defaulting to theme-park.dev' + TP_DOMAIN='theme-park.dev' +fi +if [[ -z ${TP_SCHEME} ]]; then + echo 'No scheme set, defaulting to https' + TP_SCHEME='https' +fi + +THEME_TYPE='theme-options' +if [ "${TP_COMMUNITY_THEME}" = true ]; then + THEME_TYPE='community-theme-options' +fi + +case ${TP_DOMAIN} in + *"github.io"*) + echo "Switching to github.io URL style" + TP_DOMAIN="${TP_DOMAIN}\/theme.park" + ;; +esac + +if [[ -z ${TP_THEME} ]]; then + echo 'No theme set, defaulting to organizr' + TP_THEME='organizr' +fi +RELEASE_FILEPATH='/vuetorrent/release.json' +NEEDS_UPDATE=false +CURRENT_RELEASE=$(curl -s https://api.github.com/repos/WDaan/VueTorrent/releases/latest | jq -r ".assets[]") + +# =============================================== +check_updates() { + if [[ ! -d ./vuetorrent ]]; then + NEEDS_UPDATE=true + elif [[ ! -f $RELEASE_FILEPATH ]]; then + NEEDS_UPDATE=true + else + old_date=$(date -d $(cat "${RELEASE_FILEPATH}" | jq -r ".updated_at") +%s) + new_date=$(date -d $(echo $CURRENT_RELEASE | jq -r ".updated_at") +%s) + if [ $new_date -gt $old_date ]; then + NEEDS_UPDATE=true + fi + fi +} +update_ui() { + printf '\nDownloading qBittorrent webui to "/vuetorrent"..please wait\n' + curl -L $(echo $CURRENT_RELEASE | jq -r ".browser_download_url") --output /tmp/vuetorrent.zip + printf '\nDownload finished\n\n' + if [[ -d /vuetorrent ]]; then + rm -rf /vuetorrent + fi + # mkdir -p /vuetorrent + unzip -q /tmp/vuetorrent.zip -d / + echo $CURRENT_RELEASE >"${RELEASE_FILEPATH}" +} +# =============================================== + +echo '-----------------------------------------' +echo '| qBittorrent vuetorrent theme.park Mod |' +echo '-----------------------------------------' + +if [[ -z ${TP_HOTIO} ]]; then + check_updates + + if [ "$NEEDS_UPDATE" = true ]; then + echo '---------------------------------------' + echo '| Downloading WebUI files from github |' + echo '---------------------------------------' + update_ui + else + echo ' WebUI files are up-to-date!' + fi + + if ! grep -q "WebUI\\\RootFolder" "${APP_FILEPATH}"; then + echo '--------------------------------------' + echo '| Adding WebUI\RootFolder=/vuetorrent |' + echo '--------------------------------------' + sed -i -e '$aWebUI\\RootFolder=/vuetorrent' "${APP_FILEPATH}" + fi + + if ! grep -q "WebUI\\\AlternativeUIEnabled" "${APP_FILEPATH}"; then + echo '------------------------------------------' + echo '| Adding WebUI\AlternativeUIEnabled=true |' + echo '------------------------------------------' + sed -i -e '$aWebUI\\AlternativeUIEnabled=true' "${APP_FILEPATH}" + fi + + if ! grep -q "WebUI\\\RootFolder=/vuetorrent" "${APP_FILEPATH}" || ! grep -q "WebUI\\\AlternativeUIEnabled=true" "${APP_FILEPATH}"; then + echo '-------------------------------------------------------' + echo '| Updating RootFolder and AlternativeUIEnabled values |' + echo '-------------------------------------------------------' + sed -i "s/WebUI\\\AlternativeUIEnabled=.*$/WebUI\\\AlternativeUIEnabled=true/g" "${APP_FILEPATH}" + sed -i "s/WebUI\\\RootFolder=.*$/WebUI\\\RootFolder=\/vuetorrent/g" "${APP_FILEPATH}" + fi +fi + +# Adding stylesheets +if ! grep -q "${TP_DOMAIN}/css/base" "${INDEX_FILEPATH}"; then + echo '---------------------------------------------------------' + echo '| Adding the stylesheet to /vuetorrent/public/index.html |' + echo '---------------------------------------------------------' + sed -i "s/<\/body>/<\/body> /g" "${INDEX_FILEPATH}" + sed -i "s/<\/body>/<\/body> /g" "${INDEX_FILEPATH}" + printf 'Stylesheet set to %s on public index.html\n' "${TP_THEME}" +fi \ No newline at end of file diff --git a/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/type b/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/type new file mode 100644 index 00000000..3d92b15f --- /dev/null +++ b/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/type @@ -0,0 +1 @@ +oneshot \ No newline at end of file diff --git a/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/up b/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/up new file mode 100644 index 00000000..be856d4e --- /dev/null +++ b/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mod-themepark/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-mod-themepark/run \ No newline at end of file diff --git a/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mod-themepark b/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mod-themepark new file mode 100644 index 00000000..e69de29b diff --git a/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/dependencies.d/init-mod-themepark-add-package b/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/dependencies.d/init-mod-themepark-add-package new file mode 100644 index 00000000..e69de29b diff --git a/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-themepark b/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-themepark new file mode 100644 index 00000000..e69de29b diff --git a/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-themepark-add-package b/docker-mods/vuetorrent/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-themepark-add-package new file mode 100644 index 00000000..e69de29b