Update cron support

Use new crontab file file in cron.d instead of cron.daily to support more devices
This commit is contained in:
Max 2019-06-19 14:39:19 -04:00
commit 508e7dd184
No known key found for this signature in database
GPG key ID: 0BDA73476CD8AB10

View file

@ -4,7 +4,8 @@ ORIGIN_REPO="https://github.com/${GIT_OWNER:-mrworf}/plexupdate"
FULL_PATH="/opt/plexupdate" FULL_PATH="/opt/plexupdate"
CONFIGFILE="/etc/plexupdate.conf" CONFIGFILE="/etc/plexupdate.conf"
CONFIGCRON="/etc/plexupdate.cron.conf" CONFIGCRON="/etc/plexupdate.cron.conf"
CRONWRAPPER="/etc/cron.daily/plexupdate" CRONWRAPPER="/etc/cron.d/plexupdate"
CRONWRAPPER_LEGACY="/etc/cron.daily/plexupdate"
VERBOSE=yes #to be inherited by get-plex-token, do not save to config VERBOSE=yes #to be inherited by get-plex-token, do not save to config
# default options # default options
@ -240,6 +241,11 @@ configure_cron() {
return 1 return 1
fi fi
if [ -f "CRONWRAPPER_LEGACY" -a ! -L "CRONWRAPPER_LEGACY" ]; then
echo "It seems like you have a custom cron job for plexupdate. Skipping cron job configuration."
return 1
fi
[ -f "$CONFIGCRON" ] && source "$CONFIGCRON" [ -f "$CONFIGCRON" ] && source "$CONFIGCRON"
echo echo
@ -278,7 +284,14 @@ configure_cron() {
echo echo
echo -n "Installing daily cron job... " echo -n "Installing daily cron job... "
sudo ln -sf "${FULL_PATH}/extras/cronwrapper" "$CRONWRAPPER" #changes go here
schedule=$(grep "cron.daily" crontab)
if [ -z "$schedule" ]; then
schedule="0 4 * * * "
else
schedule=${schedule%%root*}
fi
save_cronjob "${schedule}root $(which sh) ${FULL_PATH}/extras/cronwrapper" "$CRONWRAPPER"
echo "done" echo "done"
elif [ -f "$CRONWRAPPER" -o -f "$CONFIGCRON" ]; then elif [ -f "$CRONWRAPPER" -o -f "$CONFIGCRON" ]; then
echo echo
@ -291,6 +304,28 @@ configure_cron() {
fi fi
echo done echo done
fi fi
if [ -f "$CRONWRAPPER_LEGACY" ]; then
sudo rm "$CRONWRAPPER_LEGACY" || echo "Failed to remove old cron configuration, please check '$CRONWRAPPER_LEGACY'"
fi
}
save_cronjob() {
CONFIGTEMP=$(mktemp /tmp/plexupdate.XXX)
echo "#minute hour mday month wday who command" >> $CONFIGTEMP
echo "$1" >> $CONFIGTEMP
echo
echo -n "Writing cron job file '$2'... "
# most likely writing to /etc, so we need sudo
sudo tee "$2" > /dev/null < "$CONFIGTEMP"
sudo chmod 640 "$2"
# only root can modify the config, but the user can still read it
sudo chown 0:$(id -g) "$2"
rm "$CONFIGTEMP"
echo "done"
} }
save_config() { save_config() {