test: trigger pre-commit bump version

This commit is contained in:
2026-01-11 20:24:47 +09:00
parent e24771d552
commit 7396524bca
2 changed files with 58 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
#!/usr/bin/env bash
set -euo pipefail
PUBSPEC="pubspec.yaml"
if [[ ! -f "$PUBSPEC" ]]; then
echo "No $PUBSPEC found in $(pwd); skipping version bump"
exit 0
fi
# Read version line
ver_line=$(grep -E '^version:\s*' "$PUBSPEC" || true)
if [[ -z "$ver_line" ]]; then
echo "No version line found in $PUBSPEC; skipping"
exit 0
fi
# Extract version string (e.g., 1.2.3 or 1.2.3+4)
if [[ "$ver_line" =~ ([0-9]+)\.([0-9]+)\.([0-9]+)(\+[0-9]+)? ]]; then
major=${BASH_REMATCH[1]}
minor=${BASH_REMATCH[2]}
patch=${BASH_REMATCH[3]}
build=${BASH_REMATCH[4]:-}
else
echo "Failed to parse version from: $ver_line"
exit 0
fi
newpatch=$((patch + 1))
if [[ -n "$build" ]]; then
newver="${major}.${minor}.${newpatch}${build}"
else
newver="${major}.${minor}.${newpatch}"
fi
# Replace the first 'version:' line with the new version preserving leading whitespace
tmpfile=$(mktemp)
awk -v newver="$newver" 'BEGIN{re="^[[:space:]]*version:[[:space:]]*"} { if($0 ~ re && !done){ sub(re, substr($0,1,index($0,":"))+"version: " newver); done=1 } print }' "$PUBSPEC" > "$tmpfile"
# Fallback: simpler replace if awk didn't work
if ! grep -q "version: $newver" "$tmpfile"; then
sed -E "0,/^([[:space:]]*)version:/s//\1version: $newver/" "$PUBSPEC" > "$tmpfile"
fi
# Move replacement into place
mv "$tmpfile" "$PUBSPEC"
# Stage the change so it is included in the commit
if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
git add "$PUBSPEC" || true
fi
echo "pubspec version bumped to $newver"