mirror of
https://github.com/N0rthernL1ghts/wordpress.git
synced 2025-12-10 13:52:40 +01:00
Add tool/util [patch-util] - useful only for devs/contributors
This commit is contained in:
25
build/patch-util/00-download-file.sh
Executable file
25
build/patch-util/00-download-file.sh
Executable file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "> Building helper image..."
|
||||||
|
docker build -t local/wp-patch-util .
|
||||||
|
mkdir wp-src/ -p
|
||||||
|
echo ""
|
||||||
|
echo "> Running helper container..."
|
||||||
|
|
||||||
|
USER_ID=$(id -u "${USER}")
|
||||||
|
GROUP_ID=$(id -g "${USER}")
|
||||||
|
|
||||||
|
docker run --rm -t --name="wp-patch-util-$(date +%s)" -v "${PWD}/wp-src:/wp/src" -e "UID=${USER_ID}" -e "GID=${GROUP_ID}" local/wp-patch-util
|
||||||
|
sudo chown "${USER}:${USER}" wp-src -R
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
echo "> Two files are now downloaded to wp-src"
|
||||||
|
echo "> Please update wp-src/mod-update-core.php with code bellow and then execute ./01-create-patch.sh"
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
echo "wp_die("
|
||||||
|
echo " __( 'Sorry, you are not allowed to update this site.' ) ."
|
||||||
|
echo " ' Click <a href=\"https://github.com/N0rthernL1ghts/wordpress/wiki/WordPress-Core-Updates\">here</a> to learn why.'"
|
||||||
|
echo ");"
|
||||||
|
echo ""
|
||||||
51
build/patch-util/01-create-patch.sh
Executable file
51
build/patch-util/01-create-patch.sh
Executable file
@@ -0,0 +1,51 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
MOD_FILE="mod-update-core.php"
|
||||||
|
TARGET_FILE="update-core.php"
|
||||||
|
PATCH_FILE="update-core.php.patch"
|
||||||
|
|
||||||
|
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}"
|
||||||
|
echo "> Please run: "
|
||||||
|
echo " cp './wp-src/${PATCH_FILE}' '../../rootfs/etc/wp-mods/wp-admin/'"
|
||||||
|
echo ""
|
||||||
|
echo "> Don't forget to commit the changes"
|
||||||
|
echo "> Finished"
|
||||||
13
build/patch-util/Dockerfile
Normal file
13
build/patch-util/Dockerfile
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
FROM wordpress:cli-php7.4 AS wordpress-builder
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
COPY ["rootfs", "/"]
|
||||||
|
WORKDIR "/wp"
|
||||||
|
|
||||||
|
ENV UID 1000
|
||||||
|
ENV GID 1000
|
||||||
|
ENV WP_LOCALE "en_US"
|
||||||
|
ENV WP_VERSION "5.7.0"
|
||||||
|
|
||||||
|
ENTRYPOINT ["/wp/entrypoint.sh"]
|
||||||
18
build/patch-util/README.md
Normal file
18
build/patch-util/README.md
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# Patch Helper Utility
|
||||||
|
This utility is intended for developers/contributors to more painlessly create a patch(es) for core WordPress file(s).
|
||||||
|
|
||||||
|
The flow is like this:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ ./00-download-file.sh
|
||||||
|
# Modify file prefixed with mod-
|
||||||
|
$ ./01-create-patch.sh
|
||||||
|
# Copy over finished patch to appropriate location in rootfs/etc/wp-mods
|
||||||
|
```
|
||||||
|
Instructions are provided by the scripts.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Supported patches
|
||||||
|
- **wp-admin/update-core.php**
|
||||||
|
Click [here](https://github.com/N0rthernL1ghts/wordpress/wiki/WordPress-Core-Updates) for details.
|
||||||
23
build/patch-util/rootfs/wp/entrypoint.sh
Executable file
23
build/patch-util/rootfs/wp/entrypoint.sh
Executable file
@@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
echo "> Downloading WordPress ${WP_VERSION} ..."
|
||||||
|
|
||||||
|
# Removes trailing zero if found
|
||||||
|
WP_SHORT_VERSION=$(echo "${WP_VERSION}" | sed --expression='s/.0//g');
|
||||||
|
|
||||||
|
wp --allow-root --path="/tmp" core download --locale="${WP_LOCALE}" --version="${WP_SHORT_VERSION}"
|
||||||
|
|
||||||
|
if [ ! -f "/tmp/wp-admin/update-core.php" ]; then
|
||||||
|
echo "X WordPress download failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir src -p
|
||||||
|
rm src/* -f
|
||||||
|
|
||||||
|
cp /tmp/wp-admin/update-core.php src/
|
||||||
|
cp src/update-core.php src/mod-update-core.php
|
||||||
|
|
||||||
|
echo "> Files ready."
|
||||||
|
|
||||||
|
exit 0
|
||||||
Reference in New Issue
Block a user