#!/bin/bash set -e # Make sure we are in the script's directory cd "$(dirname "$0")" # Read version from version.go VERSION_LINE=$(grep "var Version =" version.go) CURRENT_VERSION=$(echo "$VERSION_LINE" | sed -E 's/.*"([^"]+)".*/\1/') if [ -z "$CURRENT_VERSION" ]; then echo "❌ Error: Could not parse version from version.go" exit 1 fi # Split version by dot IFS='.' read -r -a VERSION_PARTS <<< "$CURRENT_VERSION" MAJOR="${VERSION_PARTS[0]}" MINOR="${VERSION_PARTS[1]}" PATCH="${VERSION_PARTS[2]}" # Increment patch version NEW_PATCH=$((PATCH + 1)) NEW_VERSION="$MAJOR.$MINOR.$NEW_PATCH" echo "🚀 Incrementing version: $CURRENT_VERSION ➡️ $NEW_VERSION" # Write back to version.go using perl for portable in-place edit perl -pi -e "s/var Version = \"$CURRENT_VERSION\"/var Version = \"$NEW_VERSION\"/" version.go # Update README.md version output if [ -f README.md ]; then perl -pi -e "s/goca v$CURRENT_VERSION/goca v$NEW_VERSION/g" README.md fi # Build the project echo "🛠️ Building goca binary..." go build -o goca echo "🎉 Build successful! version: v$NEW_VERSION"