diff --git a/README.md b/README.md index 0ebcbde..a26c0a1 100644 --- a/README.md +++ b/README.md @@ -274,6 +274,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **02.03.23:** - Add cron init to allow user customizable crontabs. * **08.02.23:** - Rebase to Alpine Edge to get access to most up to date builds of Transmission. Remove bundled 3rd party UI packages. * **05.01.23:** - Rebase to Alpine 3.17, restore GNU findutils package. * **02.11.22:** - Rebase to Alpine 3.16, migrate to s6v3. diff --git a/readme-vars.yml b/readme-vars.yml index 14d383b..b836e82 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -81,6 +81,7 @@ app_setup_block: | # changelog changelogs: + - { date: "02.03.23:", desc: "Add cron init to allow user customizable crontabs." } - { date: "08.02.23:", desc: "Rebase to Alpine Edge to get access to most up to date builds of Transmission. Remove bundled 3rd party UI packages." } - { date: "05.01.23:", desc: "Rebase to Alpine 3.17, restore GNU findutils package." } - { date: "02.11.22:", desc: "Rebase to Alpine 3.16, migrate to s6v3." } diff --git a/root/app/blocklist-update.sh b/root/app/blocklist-update.sh index 5ebabcd..98405c5 100755 --- a/root/app/blocklist-update.sh +++ b/root/app/blocklist-update.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bash +# shellcheck shell=bash BLOCKLIST_ENABLED=$(jq -r '.["blocklist-enabled"]' /config/settings.json) diff --git a/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-transmission-config b/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-crontabs-config similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-transmission-config rename to root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-crontabs-config diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontabs-config/dependencies.d/init-transmission-config b/root/etc/s6-overlay/s6-rc.d/init-crontabs-config/dependencies.d/init-transmission-config new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontabs-config/run b/root/etc/s6-overlay/s6-rc.d/init-crontabs-config/run new file mode 100755 index 0000000..1080bb6 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-crontabs-config/run @@ -0,0 +1,22 @@ +#!/usr/bin/with-contenv bash +# shellcheck shell=bash + +# make folders +mkdir -p \ + /config/crontabs + +## root +# if crontabs do not exist in config +if [[ ! -f /config/crontabs/root ]]; then + # copy crontab from system + if crontab -l -u root; then + crontab -l -u root >/config/crontabs/root + fi + + # if crontabs still do not exist in config (were not copied from system) + # copy crontab from included defaults (using -n, do not overwrite an existing file) + cp -n /etc/crontabs/root /config/crontabs/ +fi +# set permissions and import user crontabs +lsiown root:root /config/crontabs/root +crontab -u root /config/crontabs/root diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontabs-config/type b/root/etc/s6-overlay/s6-rc.d/init-crontabs-config/type new file mode 100644 index 0000000..bdd22a1 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-crontabs-config/type @@ -0,0 +1 @@ +oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontabs-config/up b/root/etc/s6-overlay/s6-rc.d/init-crontabs-config/up new file mode 100644 index 0000000..006d814 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-crontabs-config/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-crontabs-config/run diff --git a/root/etc/s6-overlay/s6-rc.d/svc-cron/run b/root/etc/s6-overlay/s6-rc.d/svc-cron/run index acfe0d8..5eaadfd 100755 --- a/root/etc/s6-overlay/s6-rc.d/svc-cron/run +++ b/root/etc/s6-overlay/s6-rc.d/svc-cron/run @@ -1,5 +1,4 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash -exec \ - /usr/sbin/crond -f -S -l 0 -c /etc/crontabs +exec /usr/sbin/crond -f -S -l 5 diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-crontabs-config b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-crontabs-config new file mode 100644 index 0000000..e69de29