47 lines
1,000 B
Bash
Executable file
47 lines
1,000 B
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
|
|
|
|
cargo install cargo-edit --force
|
|
|
|
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 sync-server versions"
|
|
cd sync-server
|
|
cargo set-version --bump $1
|
|
|
|
echo "Bumping frontend versions"
|
|
cd ../frontend
|
|
npm version $1 --workspaces
|
|
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"
|