blob: 414258e41b37a357701b2b8fd44f75e966cc5161 [file] [log] [blame]
#!/bin/bash
set -e
set -o pipefail
cd zstd
CURRENT=$(git describe --tags)
git fetch -q
TAG=$(git tag -l | grep '^v' | sort | tail -n 1)
if [ $CURRENT != $TAG ]
then
git checkout $TAG
cd ..
git add zstd
./update_bindings.sh
git add src/bindings*.rs
cd ..
./update_consts.sh
git add src/constants*.rs
cd zstd-sys
# Note: You'll need a forked version of cargo-bump that supports metadata
# For instance https://github.com/gyscos/cargo-bump
METADATA="zstd.${TAG/v/}"
cargo bump patch --build $METADATA
ZSTD_SYS_VERSION=$(cargo read-manifest | jq -r .version | cut -d+ -f1)
git add Cargo.toml
cd ..
cargo add zstd-sys --path ./zstd-sys --vers "=${ZSTD_SYS_VERSION}" --no-default-features
cargo bump patch --build $METADATA
ZSTD_SAFE_VERSION=$(cargo read-manifest | jq -r .version | cut -d+ -f1)
git add Cargo.toml
cd ..
cargo add zstd-safe --path ./zstd-safe --vers "=${ZSTD_SAFE_VERSION}" --no-default-features
cargo bump patch --build $METADATA
ZSTD_RS_VERSION=$(cargo read-manifest | jq -r .version | cut -d+ -f1)
git add Cargo.toml
cargo check
git commit -m "Update zstd to $TAG"
# Publish?
read -p "Publish to crates.io? " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]
then
cd zstd-safe/zstd-sys
# Need to wait so that the index refreshes.
cargo publish && sleep 5
cd ..
cargo publish && sleep 5
cd ..
cargo publish
git tag $ZSTD_RS_VERSION
else
echo "Would have published $ZSTD_RS_VERSION"
fi
else
echo "Already using zstd $TAG"
fi