Files
2026-07-11 14:46:16 +03:00

56 lines
1.4 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")/.."
BUMP="${1:-patch}"
CURRENT_VERSION=$(node -p "require('./manifest.json').version")
if [[ "$BUMP" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
NEW_VERSION="$BUMP"
elif [[ "$BUMP" == "patch" ]]; then
NEW_VERSION=$(node -p "
const [a,b,c] = '$CURRENT_VERSION'.split('.').map(Number);
\`\${a}.\${b}.\${c+1}\`
")
elif [[ "$BUMP" == "minor" ]]; then
NEW_VERSION=$(node -p "
const [a,b] = '$CURRENT_VERSION'.split('.').map(Number);
\`\${a}.\${b+1}.0\`
")
elif [[ "$BUMP" == "major" ]]; then
NEW_VERSION=$(node -p "
const [a] = '$CURRENT_VERSION'.split('.').map(Number);
\`\${a+1}.0.0\`
")
else
echo "Usage: $0 [patch|minor|major|<semver>]"
exit 1
fi
echo "Current: $CURRENT_VERSION"
echo "New: $NEW_VERSION"
read -p "Proceed? [y/N] " CONFIRM
if [[ "$CONFIRM" != "y" && "$CONFIRM" != "Y" ]]; then
echo "Aborted."; exit 1
fi
node -e "
const fs = require('fs');
const m = require('./manifest.json'); m.version = '$NEW_VERSION';
fs.writeFileSync('./manifest.json', JSON.stringify(m, null, '\t') + '\n');
const p = require('./package.json'); p.version = '$NEW_VERSION';
fs.writeFileSync('./package.json', JSON.stringify(p, null, '\t') + '\n');
"
npm run build
git add -f manifest.json package.json main.js styles.css
git commit -m "v$NEW_VERSION"
git tag "v$NEW_VERSION"
echo ""
echo "✔ Release v$NEW_VERSION ready."
echo "Run: git push && git push --tags"