mirror of
https://github.com/N0rthernL1ghts/wordpress.git
synced 2024-11-27 13:02:11 +01:00
63 lines
1.5 KiB
Bash
Executable File
63 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env sh
|
|
|
|
MOD_FILE="mod-update-core.php"
|
|
TARGET_FILE="update-core.php"
|
|
PATCH_FILE="wp-admin-update-core.patch"
|
|
WP_VERSION="${1:-}"
|
|
|
|
set -e
|
|
cd ./wp-src
|
|
|
|
if [ ! -f "${MOD_FILE}" ]; then
|
|
echo "X ${MOD_FILE} not found"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f "${TARGET_FILE}" ]; then
|
|
echo "X ${TARGET_FILE} not found"
|
|
exit 1
|
|
fi
|
|
|
|
if cmp --silent "${MOD_FILE}" "${TARGET_FILE}"; then
|
|
echo "X ${MOD_FILE} and ${TARGET_FILE} are the same. Nothing to patch."
|
|
exit 1
|
|
fi
|
|
|
|
if [ -f "${PATCH_FILE}" ]; then
|
|
PATCH_FILE_BACKUP="$(date +%s)bak-${PATCH_FILE}"
|
|
echo "! Patch file ${PATCH_FILE} already exists and will be backed up"
|
|
mv "${PATCH_FILE}" "${PATCH_FILE_BACKUP}"
|
|
echo "! Backup: ${PATCH_FILE_BACKUP}"
|
|
fi
|
|
|
|
# diff exits with code 1 if there was a difference between files, so we need to temporarily disable exit-on-error
|
|
set +e
|
|
echo "> Patching file..."
|
|
diff -u "${TARGET_FILE}" "${MOD_FILE}" > "${PATCH_FILE}"
|
|
set -e
|
|
|
|
if [ ! -s "${PATCH_FILE}" ]; then
|
|
echo "X Patch failed."
|
|
exit 1
|
|
fi
|
|
|
|
echo "> Fixing patch header"
|
|
sed -i "s/${MOD_FILE}/${TARGET_FILE}/g" "${PATCH_FILE}"
|
|
|
|
echo "> Patch file created ${PATCH_FILE}"
|
|
|
|
if [ -n "${WP_VERSION}" ]; then
|
|
echo "> WordPress version defined: ${WP_VERSION}"
|
|
echo "> Copying the patch file..."
|
|
mkdir "../../../patches/${WP_VERSION}" -p
|
|
cp -v "./${PATCH_FILE}" "../../../patches/${WP_VERSION}/"
|
|
else
|
|
echo "> Please run: "
|
|
echo " cp './wp-src/${PATCH_FILE}' '../../../patches/5.x.x/'"
|
|
fi
|
|
|
|
|
|
echo ""
|
|
echo "> Don't forget to inspect the patch and THEN commit"
|
|
echo "> Finished"
|