52 lines
1.1 KiB
Bash
Executable file
52 lines
1.1 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
if [[ -z $1 ]]; then
|
|
echo "Usage: $0 {patch|minor|major}"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ $1 =~ ^(patch|minor|major)$ ]]; then
|
|
echo "Creating a new '$1' version"
|
|
else
|
|
echo "Invalid argument: $1"
|
|
echo "Usage: $0 {patch|minor|major}"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ -n $(git status --porcelain) ]]; then
|
|
echo "Your working directory is not clean. Please commit or stash your changes before proceeding."
|
|
exit 1
|
|
else
|
|
echo "Your working directory is clean."
|
|
fi
|
|
|
|
echo "Bumping backend versions"
|
|
cd backend
|
|
cargo set-version --bump $1
|
|
|
|
echo "Bumping frontend versions"
|
|
cd ../frontend
|
|
npm version $1 --workspaces
|
|
|
|
echo "Updating frontend dependencies to match the new backend versions"
|
|
cd ../backend/sync_lib
|
|
wasm-pack build --target web --features console_error_panic_hook
|
|
|
|
cd ../../frontend
|
|
npm install
|
|
|
|
cd ..
|
|
cp frontend/obsidian-plugin/manifest.json manifest.json # for BRAT, otherwise it wouldn't update
|
|
|
|
# Commit and tag
|
|
git add .
|
|
TAG=$(node -p "require('./frontend/obsidian-plugin/package.json').version")
|
|
git commit -m "Bump versions to $TAG"
|
|
|
|
git push
|
|
echo "Tagging $TAG"
|
|
git tag -a $TAG -m "Release $TAG"
|
|
git push origin $TAG
|
|
echo "Done"
|