#!/usr/bin/env bash # scripts/setup-hub-update-cron.sh # Installs/updates a cron entry for automated Nextcloud Hub updates. set -euo pipefail REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" HUB_ENV_FILE="${REPO_DIR}/.hub-update.env" LOG_DIR="${REPO_DIR}/logs" LOG_FILE="${LOG_DIR}/hub-update.log" CRON_MARKER="# nextcloud-docker hub update" CRON_SCHEDULE="${HUB_UPDATE_CRON_SCHEDULE:-30 2 * * 0}" if [ -f "${HUB_ENV_FILE}" ]; then # shellcheck disable=SC1090 set -a source "${HUB_ENV_FILE}" set +a fi RUN_APP_UPDATES="${RUN_APP_UPDATES:-1}" STRICT_TLS="${STRICT_TLS:-0}" ENABLE_WEB_UPDATER="${ENABLE_WEB_UPDATER:-1}" UPDATER_RELEASE_CHANNEL="${UPDATER_RELEASE_CHANNEL:-stable}" mkdir -p "${LOG_DIR}" chmod 700 "${LOG_DIR}" cat > "${HUB_ENV_FILE}" </dev/null | grep -v "${CRON_MARKER}" || true echo "${CRON_LINE}" } | crontab - echo "==> Installed Hub update cron job:" echo " ${CRON_LINE}" echo "==> Stored update defaults in ${HUB_ENV_FILE}" echo "==> Logs will be written to ${LOG_FILE}"