Skip to content

Commit 1ccc2a4

Browse files
committed
fix(vendfor.sh): no-op if local is already up to date
1 parent 4d446f7 commit 1ccc2a4

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

scripts/vendor.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ SQLITE_ZIP="sqlite-amalgamation-${SQLITE_VERSION}.zip"
88
SQLITE_URL="https://www.sqlite.org/${SQLITE_YEAR}/${SQLITE_ZIP}"
99
EXPECTED_SHA256="84a85d6a1b920234349f01720912c12391a4f0cb5cb998087e641dee3ef8ef2e"
1010

11+
# Compute expected SQLITE_VERSION_NUMBER from download version
12+
# Download format: XYYZZPP (X=major, YY=minor, ZZ=release, PP=patch)
13+
# sqlite3.c format: MAJOR*1000000 + MINOR*1000 + RELEASE
14+
EXPECTED_VERSION_NUMBER=$((${SQLITE_VERSION:0:1} * 1000000 + 10#${SQLITE_VERSION:1:2} * 1000 + 10#${SQLITE_VERSION:3:2}))
15+
1116
# Compute SHA-256 (works on both Linux and macOS)
1217
compute_sha256() {
1318
if command -v sha256sum >/dev/null 2>&1; then
@@ -20,6 +25,17 @@ compute_sha256() {
2025
fi
2126
}
2227

28+
# Check if vendor directory already has the correct version
29+
if [ -f "vendor/sqlite3.c" ]; then
30+
CURRENT_VERSION=$(grep -m1 "^#define SQLITE_VERSION_NUMBER" vendor/sqlite3.c | awk '{print $3}')
31+
if [ "${CURRENT_VERSION}" = "${EXPECTED_VERSION_NUMBER}" ]; then
32+
HUMAN_VERSION=$(grep -m1 "^#define SQLITE_VERSION " vendor/sqlite3.c | awk '{gsub(/"/, "", $3); print $3}')
33+
echo "SQLite ${HUMAN_VERSION} already vendored."
34+
exit 0
35+
fi
36+
echo "Found different SQLite version, updating..."
37+
fi
38+
2339
echo "Downloading SQLite amalgamation ${SQLITE_VERSION}..."
2440
curl -fSL -o "${SQLITE_ZIP}" "${SQLITE_URL}"
2541

0 commit comments

Comments
 (0)