#!/usr/bin/env bash set -e # Applies patch for preventing WordPress updates function main() { PATCH_FILE="${1:?PATCH_FILE is required}" TARGET_FILE="${2:?TARGET_FILE is required}" if [ ! -f "${PATCH_FILE}" ]; then echo "> No such file [PATCH]: ${PATCH_FILE}" return 1 fi if [ ! -f "${TARGET_FILE}" ]; then echo "> No such file [TARGET]: ${TARGET_FILE}" return 1 fi echo "> Loading patch ${PATCH_FILE}" echo " Patching '${TARGET_FILE}'..." patch --verbose "${TARGET_FILE}" <"${PATCH_FILE}" MARK_READ_ONLY="${3:-true}" if [ "${MARK_READ_ONLY}" = "true" ]; then # This is done in order to prevent WordPress overwriting the file echo " Marking the patched file read-only..." chmod 0440 "${TARGET_FILE}" fi return 0 } # Usage: main /etc/wp-mods/wp-admin-update-core.patch /var/www/html/wp-admin/update-core.php ?true|false main "${@}" exit $?