Files
plezy/scripts/sync_changelogs.sh
T

60 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# Sync changelogs between iOS and Android
# This script copies the iOS release notes to the Android changelog for the current version
set -e
# Get the script's directory
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PROJECT_ROOT="$SCRIPT_DIR/.."
# Colors for output
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
echo -e "${GREEN}📝 Syncing changelogs between iOS and Android${NC}"
# Extract version code from pubspec.yaml
PUBSPEC_PATH="$PROJECT_ROOT/pubspec.yaml"
if [ ! -f "$PUBSPEC_PATH" ]; then
echo -e "${RED}Error: pubspec.yaml not found at $PUBSPEC_PATH${NC}"
exit 1
fi
VERSION_CODE=$(grep -E "version:\s*(.+)\+(\d+)" "$PUBSPEC_PATH" | sed -E 's/.*\+([0-9]+).*/\1/')
if [ -z "$VERSION_CODE" ]; then
echo -e "${RED}Error: Could not extract version code from pubspec.yaml${NC}"
exit 1
fi
echo -e "${YELLOW}Current version code: $VERSION_CODE${NC}"
# Define paths
IOS_RELEASE_NOTES="$PROJECT_ROOT/ios/fastlane/metadata/en-US/release_notes.txt"
ANDROID_CHANGELOG="$PROJECT_ROOT/android/fastlane/metadata/android/en-GB/changelogs/$VERSION_CODE.txt"
# Check if iOS release notes exist
if [ ! -f "$IOS_RELEASE_NOTES" ]; then
echo -e "${RED}Error: iOS release notes not found at $IOS_RELEASE_NOTES${NC}"
exit 1
fi
# Create Android changelogs directory if it doesn't exist
ANDROID_CHANGELOGS_DIR="$(dirname "$ANDROID_CHANGELOG")"
mkdir -p "$ANDROID_CHANGELOGS_DIR"
# Copy iOS release notes to Android changelog
cp "$IOS_RELEASE_NOTES" "$ANDROID_CHANGELOG"
echo -e "${GREEN}✅ Successfully synced changelog!${NC}"
echo -e " iOS release notes → Android changelog ($VERSION_CODE.txt)"
echo ""
echo -e "${YELLOW}Next steps:${NC}"
echo "1. Review the changelog at: $ANDROID_CHANGELOG"
echo "2. Commit the changes"
echo "3. Run fastlane to deploy"