Merge pull request #736 from linuxserver/universal-cron-standard

cron standard
This commit is contained in:
Eric Nemchik 2023-11-02 13:12:18 -05:00 committed by GitHub
commit d85088b0fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 31 additions and 61 deletions

View File

@ -1,9 +0,0 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
if [ ! -f /usr/sbin/cron ] && [ -f /usr/bin/apt ]; then
echo "**** Adding cron to package install list ****"
echo "cron" >>/mod-repo-packages-to-install.list
else
echo "**** cron package already installed, skipping ****"
fi

View File

@ -1 +0,0 @@
/etc/s6-overlay/s6-rc.d/init-mod-universal-cron-add-package/run

View File

@ -1,38 +0,0 @@
#!/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 /defaults/crontabs-mod/root /config/crontabs/
fi
# set permissions and import user crontabs
lsiown root:root /config/crontabs/root
crontab -u root /config/crontabs/root
## abc
# if crontabs do not exist in config
if [[ ! -f /config/crontabs/abc ]]; then
# copy crontab from system
if crontab -l -u abc; then
crontab -l -u abc >/config/crontabs/abc
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 /defaults/crontabs-mod/abc /config/crontabs/
fi
# set permissions and import user crontabs
lsiown abc:abc /config/crontabs/abc
crontab -u abc /config/crontabs/abc

View File

@ -1 +0,0 @@
/etc/s6-overlay/s6-rc.d/init-mod-universal-cron-setup/run

View File

@ -0,0 +1,30 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
for cron_user in abc root; do
# make folders
mkdir -p \
/config/crontabs
# if crontabs do not exist in config
if [[ ! -f "/config/crontabs/${cron_user}" ]]; then
# copy crontab from system
if crontab -l -u "${cron_user}" >/dev/null 2>&1; then
crontab -l -u "${cron_user}" >"/config/crontabs/${cron_user}"
fi
if [[ -f "/defaults/crontabs/${cron_user}" ]]; then
# if crontabs still do not exist in config (were not copied from system)
# copy crontab from image defaults (using -n, do not overwrite an existing file)
cp -n "/defaults/crontabs/${cron_user}" /config/crontabs/
fi
# if crontabs still do not exist in config (were not copied from system)
# copy crontab from mod defaults (using -n, do not overwrite an existing file)
cp -n "/defaults/crontabs-mod/${cron_user}" /config/crontabs/
fi
# set permissions and import user crontabs
lsiown "${cron_user}":"${cron_user}" "/config/crontabs/${cron_user}"
crontab -u "${cron_user}" "/config/crontabs/${cron_user}"
done

View File

@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-mod-universal-crontab-config/run

View File

@ -1,10 +0,0 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
if [ -f /usr/bin/apt ]; then
# ubuntu
exec /usr/sbin/cron -f -L 1
elif [ -f /sbin/apk ]; then
# alpine
exec /usr/sbin/crond -f -S -l 5
fi