-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbump.sh
More file actions
executable file
·40 lines (34 loc) · 1.71 KB
/
Copy pathbump.sh
File metadata and controls
executable file
·40 lines (34 loc) · 1.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/sh -e
# Moves the vendored SQLite3MC to release VERSION, taking the archive checksum and SQLite version from its signed SHA256SUMS.
VERSION=${1:?usage: bump.sh VERSION}
echo "$VERSION" | grep -Eq '^[0-9]+\.[0-9]+\.[0-9]+$' || { echo "not a release version: $VERSION" >&2; exit 1; }
cd "$(dirname "$0")"
. ./sigstore.sh
WORK=$(mktemp -d)
trap 'rm -rf "$WORK"' EXIT
fetch_signed_sums "$VERSION" "$WORK"
ESCAPED=$(echo "$VERSION" | sed 's/\./\\./g')
LINE=$(grep -E "^[0-9a-f]{64} sqlite3mc-${ESCAPED}-sqlite-[0-9]+\.[0-9]+\.[0-9]+-amalgamation\.zip$" "$WORK/SHA256SUMS")
ARCHIVE_SHA256=${LINE%% *}
SQLITE_VERSION=$(echo "$LINE" | sed -E 's/.*-sqlite-([0-9.]+)-amalgamation\.zip$/\1/')
# The crate version encodes the release, so SQLite3MC X.Y.Z becomes (100X+Y).Z.0.
MAJOR=${VERSION%%.*}
REST=${VERSION#*.}
MINOR=${REST%%.*}
PATCH=${REST#*.}
CRATE_VERSION="$((MAJOR * 100 + MINOR)).${PATCH}.0+sqlite3mc-${VERSION}-sqlite-${SQLITE_VERSION}"
sed -i -E \
-e "s/^SQLITE3MC_VERSION=\".*\"$/SQLITE3MC_VERSION=\"${VERSION}\"/" \
-e "s/^SQLITE_VERSION=\".*\"$/SQLITE_VERSION=\"${SQLITE_VERSION}\"/" \
-e "s/^ARCHIVE_SHA256=\".*\"$/ARCHIVE_SHA256=\"${ARCHIVE_SHA256}\"/" \
upgrade.sh
sed -i -E \
-e "s/^(pub const SQLITE3MC_VERSION: &str = )\".*\";$/\1\"${VERSION}\";/" \
-e "s/^(pub const SQLITE_VERSION: &str = )\".*\";$/\1\"${SQLITE_VERSION}\";/" \
src/lib.rs
sed -i -E "0,/^version = \".*\"$/s//version = \"${CRATE_VERSION}\"/" Cargo.toml
cargo update --quiet -p sqlite3mc-src
cargo update --quiet --manifest-path smoke/Cargo.toml -p sqlite3mc-src
cargo update --quiet --manifest-path fuzz/Cargo.toml -p sqlite3mc-src
./upgrade.sh
echo "Pinned SQLite3MC ${VERSION} on SQLite ${SQLITE_VERSION} as ${CRATE_VERSION}"