diff --git a/docker/root/custom-cont-init.d/defaults-gui b/docker/root/custom-cont-init.d/defaults-gui index e7ded513..75d535a9 100644 --- a/docker/root/custom-cont-init.d/defaults-gui +++ b/docker/root/custom-cont-init.d/defaults-gui @@ -5,51 +5,56 @@ if [ "$YTDL_SUB_TYPE" != "gui" ] ; then exit 0 fi -echo "Checking ytdl-sub-gui defaults..." +# always create the config dir with empty cron logs +mkdir -p /config/ytdl-sub-configs +echo "" > /config/ytdl-sub-configs/cron_logs.txt -# clear the cron logs on start, always -echo > /config/ytdl-sub-configs/cron_logs.txt +echo "[ytdl-sub-init] Checking defaults..." # copy config [[ ! -e /config/ytdl-sub-configs/config.yaml ]] && \ - mkdir -p /config/ytdl-sub-configs && \ cp /defaults/config.yaml /config/ytdl-sub-configs/config.yaml [[ ! -e /config/ytdl-sub-configs/subscriptions.yaml ]] && \ - mkdir -p /config/ytdl-sub-configs && \ cp /defaults/subscriptions.yaml /config/ytdl-sub-configs/subscriptions.yaml [[ ! -d /config/ytdl-sub-configs/examples ]] && \ mkdir -p /config/ytdl-sub-configs/examples && \ - cp /defaults/examples/* /config/ytdl-sub-configs/examples + cp -r /defaults/examples/* /config/ytdl-sub-configs/examples [[ ! -d /config/ytdl-sub-configs/cron_script ]] && \ - mkdir -p /config/ytdl-sub-configs && \ cp /defaults/cron_script /config/ytdl-sub-configs/cron_script + chmod +x /config/ytdl-sub-configs/cron_script + +# permissions +chown -R ${PUID:-abc}:${PGID:-abc} \ + /config if [ -n "$CRON_SCHEDULE" ] ; then - # put it into the crontab file - echo "# min hour day month weekday command" > /config/crontabs/abc - echo " ${CRON_SCHEDULE} /config/ytdl-sub-configs/cron_script | tee -a /config/ytdl-sub-configs/cron_logs.txt" >> /config/crontabs/abc + # copy cron wrapper over + cp /defaults/cron_wrapper.gui /opt/cron_wrapper + chmod +x /opt/cron_wrapper + chown abc:abc /opt/cron_wrapper + + # execute cron wrapper in the crontab file + echo "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" > /config/crontabs/abc + echo "" >> /config/crontabs/abc + echo "# min hour day month weekday command" >> /config/crontabs/abc + echo " ${CRON_SCHEDULE} /opt/cron_wrapper" >> /config/crontabs/abc # restart cron /etc/init.d/cron reload # check cron - crontab -u abc -l + crontab -u abc /config/crontabs/abc ret=$? if [ $ret -eq 0 ]; then - echo "Cron schedule is successfully set to ${CRON_SCHEDULE}" - if [ "$CRON_RUN_ON_START" = true ] ; then - # Run cron script on start - su - abc -c "/config/ytdl-sub-configs/cron_script | tee -a /config/ytdl-sub-configs/cron_logs.txt" & + echo "[ytdl-sub-init] Cron schedule is successfully set to ${CRON_SCHEDULE}" + if [ -n "$CRON_RUN_ON_START" ] ; then + # Run cron script on start, logs get emitted to docker so do not write to cron logs + echo "[ytdl-sub-init] Cron on start enabled, starting" + sudo -b -u abc bash -c "cd /config/ytdl-sub-configs && ./cron_script" fi else - echo "Cron schedule is invalid, disabling" + echo "[ytdl-sub-init] Cron schedule is invalid, disabling" + sleep 10 fi fi - - - - -# permissions -chown -R ${PUID:-abc}:${PGID:-abc} \ - /config diff --git a/docker/root/custom-cont-init.d/defaults-headless b/docker/root/custom-cont-init.d/defaults-headless index 8d5d632b..28e7d51a 100644 --- a/docker/root/custom-cont-init.d/defaults-headless +++ b/docker/root/custom-cont-init.d/defaults-headless @@ -5,7 +5,11 @@ if [ "$YTDL_SUB_TYPE" == "gui" ] ; then exit 0 fi -echo "Checking ytdl-sub defaults..." +# always create the config dir with empty cron logs +mkdir -p /config +echo "" > /config/cron_logs.txt + +echo "[ytdl-sub-init] Checking defaults..." # copy config [[ ! -e /config/config.yaml ]] && \ diff --git a/docker/root/defaults/cron_wrapper.gui b/docker/root/defaults/cron_wrapper.gui new file mode 100644 index 00000000..5a9f7b0a --- /dev/null +++ b/docker/root/defaults/cron_wrapper.gui @@ -0,0 +1,3 @@ +#!/bin/bash +cd /config/ytdl-sub-configs +bash ./cron_script | tee -a ./cron_logs.txt \ No newline at end of file diff --git a/docker/root/defaults/cron_wrapper.headless b/docker/root/defaults/cron_wrapper.headless new file mode 100644 index 00000000..53f2d9d2 --- /dev/null +++ b/docker/root/defaults/cron_wrapper.headless @@ -0,0 +1,3 @@ +#!/bin/bash +cd /config +bash ./cron_script | tee -a ./cron_logs.txt \ No newline at end of file diff --git a/docker/testing/docker-compose.yml b/docker/testing/docker-compose.yml index ba171da8..40cb64b4 100644 --- a/docker/testing/docker-compose.yml +++ b/docker/testing/docker-compose.yml @@ -6,7 +6,7 @@ services: - PUID=1000 - PGID=1000 - TZ=America/Los_Angeles - - CRON_SCHEDULE=* * * * */1 + - CRON_SCHEDULE=* * * * * */1 - CRON_RUN_ON_START=True volumes: - ./volumes/ytdl-sub-gui:/config diff --git a/src/ytdl_sub/__init__.py b/src/ytdl_sub/__init__.py index 070a0d60..d93d6a56 100644 --- a/src/ytdl_sub/__init__.py +++ b/src/ytdl_sub/__init__.py @@ -1,2 +1,2 @@ -__pypi_version__ = "2024.06.19.post1" -__local_version__ = "2024.06.19+94db90f1" +__pypi_version__ = "2024.06.19.post2" +__local_version__ = "2024.06.19+c2383614"