summaryrefslogtreecommitdiff
path: root/stacks/crdop/scripts/apply-vendor-patches.sh
diff options
context:
space:
mode:
authorinfo@mode42.com <info@mode42.com>2026-08-07 18:23:28 +0000
committerinfo@mode42.com <info@mode42.com>2026-08-07 18:23:28 +0000
commitfa05a5f8238e9e1417235711656e5062ccc843a7 (patch)
tree46fbbd18de54492b59307c16efcc7f3152723238 /stacks/crdop/scripts/apply-vendor-patches.sh
Initial push
Diffstat (limited to 'stacks/crdop/scripts/apply-vendor-patches.sh')
-rwxr-xr-xstacks/crdop/scripts/apply-vendor-patches.sh36
1 files changed, 36 insertions, 0 deletions
diff --git a/stacks/crdop/scripts/apply-vendor-patches.sh b/stacks/crdop/scripts/apply-vendor-patches.sh
new file mode 100755
index 0000000..da62bf5
--- /dev/null
+++ b/stacks/crdop/scripts/apply-vendor-patches.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+# Apply CRDOP patch series — only if vendor tree is still pristine upstream.
+# Released CRDOP commits ship vendor/ardopcf with patches already integrated.
+set -euo pipefail
+
+ROOT="$(cd "$(dirname "$0")/.." && pwd)"
+VENDOR="${ROOT}/vendor/ardopcf"
+PATCH_DIR="${ROOT}/patches/ardopcf"
+STAMP="${VENDOR}/.crdop-patches-applied"
+MARKER="${VENDOR}/src/common/ARDOPC.c"
+
+if [[ ! -d "${VENDOR}/src" ]]; then
+ echo "error: ${VENDOR} missing" >&2
+ exit 1
+fi
+
+if grep -q 'CRDOP src/crdop_version.c' "${MARKER}" 2>/dev/null; then
+ date -u +'%Y-%m-%dT%H:%M:%SZ' > "${STAMP}"
+ echo "CRDOP vendor already integrated ($(cat "${STAMP}"))"
+ exit 0
+fi
+
+if [[ ! -d "${PATCH_DIR}" ]] || ! compgen -G "${PATCH_DIR}/*.patch" >/dev/null; then
+ echo "error: no patches in ${PATCH_DIR}" >&2
+ exit 1
+fi
+
+cd "${VENDOR}"
+for p in "${PATCH_DIR}"/*.patch; do
+ echo "applying ${p#${ROOT}/}"
+ git apply --check "${p}" 2>/dev/null || patch -p1 --forward -r - < "${p}"
+ git apply "${p}" 2>/dev/null || patch -p1 --forward < "${p}"
+done
+
+date -u +'%Y-%m-%dT%H:%M:%SZ' > "${STAMP}"
+echo "CRDOP patches applied ($(cat "${STAMP}"))"
git clone -b <branch> https://cgit.mode42.com/<repo>.git
git clone -b <branch> git://cgit.mode42.com/<repo>.git

info@mode42.com