#!/bin/bash
# ๐ Version Consistency Audit Script
# Run this before any release to ensure all version references match
echo "๐ Version Consistency Audit"
echo "=========================="
# Extract versions from key files
PKG_VERSION=$(grep '"version"' package.json | head -1 | sed 's/.*"version": *"\([^"]*\)".*/\1/')
SRC_VERSION=$(grep 'version:' src/index.ts | sed "s/.*version: *['\"]\\([^'\"]*\\)['\"].*/\\1/")
DOCKER_VERSION=$(grep 'version=' Dockerfile | sed 's/.*version="\([^"]*\)".*/\1/')
TEST_VERSION=$(grep 'version:' src/__tests__/index.test.ts | sed "s/.*version: *['\"]\\([^'\"]*\\)['\"].*/\\1/")
echo "๐ฆ package.json: $PKG_VERSION"
echo "๐ง src/index.ts: $SRC_VERSION"
echo "๐ณ Dockerfile: $DOCKER_VERSION"
echo "๐งช Test file: $TEST_VERSION"
# Check for consistency
ALL_VERSIONS=("$PKG_VERSION" "$SRC_VERSION" "$DOCKER_VERSION" "$TEST_VERSION")
FIRST_VERSION=${ALL_VERSIONS[0]}
CONSISTENT=true
for version in "${ALL_VERSIONS[@]}"; do
if [ "$version" != "$FIRST_VERSION" ]; then
CONSISTENT=false
break
fi
done
echo ""
if [ "$CONSISTENT" = true ]; then
echo "โ
All versions are consistent: $FIRST_VERSION"
echo ""
echo "๐ Ready for release!"
exit 0
else
echo "โ Version mismatch detected!"
echo ""
echo "๐ง Files that need updating:"
if [ "$SRC_VERSION" != "$PKG_VERSION" ]; then
echo " - src/index.ts (currently: $SRC_VERSION, should be: $PKG_VERSION)"
fi
if [ "$DOCKER_VERSION" != "$PKG_VERSION" ]; then
echo " - Dockerfile (currently: $DOCKER_VERSION, should be: $PKG_VERSION)"
fi
if [ "$TEST_VERSION" != "$PKG_VERSION" ]; then
echo " - src/__tests__/index.test.ts (currently: $TEST_VERSION, should be: $PKG_VERSION)"
fi
echo ""
echo "๐ Update these files manually, then run this script again."
exit 1
fi