按规划持续工作

This commit is contained in:
2026-06-09 06:13:28 +08:00
parent 902c6ecaea
commit 2658ee3b72
255 changed files with 12487 additions and 150 deletions

View File

@@ -5,6 +5,9 @@ ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
UPSTREAM_DIR="$ROOT_DIR/../linuxcnc"
VENDOR_DIR="$ROOT_DIR/vendor/linuxcnc"
MANIFEST_FILE="$ROOT_DIR/tools/source-manifest.txt"
BUILD_DIR="$ROOT_DIR/build/native"
CACHE_KEY_FILE="$BUILD_DIR/vendor-sync.input.sha256"
CACHE_OK_FILE="$BUILD_DIR/vendor-sync.ok"
if [[ ! -d "$UPSTREAM_DIR" ]]; then
echo "missing upstream directory: $UPSTREAM_DIR" >&2
@@ -21,6 +24,36 @@ if [[ ! -f "$MANIFEST_FILE" ]]; then
exit 1
fi
mkdir -p "$BUILD_DIR"
vendor_sync_fingerprint() {
{
git -C "$UPSTREAM_DIR" rev-parse HEAD
sha256sum \
"$ROOT_DIR/tools/verify_vendor_sync.sh" \
"$MANIFEST_FILE"
while IFS= read -r src_rel; do
[[ -z "$src_rel" ]] && continue
[[ "${src_rel:0:1}" == "#" ]] && continue
printf '%s\0' "$UPSTREAM_DIR/$src_rel"
done < "$MANIFEST_FILE" | xargs -0 -r sha256sum 2>/dev/null || true
while IFS= read -r src_rel; do
[[ -z "$src_rel" ]] && continue
[[ "${src_rel:0:1}" == "#" ]] && continue
printf '%s\0' "$VENDOR_DIR/$src_rel"
done < "$MANIFEST_FILE" | xargs -0 -r sha256sum 2>/dev/null || true
find "$VENDOR_DIR" -type f -printf 'vendor-list:%P\n' | sort
} | sha256sum | awk '{ print $1 }'
}
VENDOR_SYNC_FINGERPRINT="$(vendor_sync_fingerprint)"
if [[ -f "$CACHE_KEY_FILE" && -f "$CACHE_OK_FILE" ]] &&
[[ "$(tr -d '[:space:]' < "$CACHE_KEY_FILE")" == "$VENDOR_SYNC_FINGERPRINT" ]] &&
[[ "$(tr -d '[:space:]' < "$CACHE_OK_FILE")" == "$VENDOR_SYNC_FINGERPRINT" ]]; then
echo "vendor sync up to date"
exit 0
fi
TMP_DIR="$(mktemp -d)"
trap 'rm -rf "$TMP_DIR"' EXIT
@@ -82,4 +115,6 @@ while IFS= read -r src_rel; do
fi
done < "$MANIFEST_SORTED"
printf '%s\n' "$VENDOR_SYNC_FINGERPRINT" > "$CACHE_KEY_FILE"
printf '%s\n' "$VENDOR_SYNC_FINGERPRINT" > "$CACHE_OK_FILE"
echo "vendor sync validation complete"