#!/usr/bin/env bash
set -euo pipefail
TARGET="${1:-all}"
ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
SHARED_ANDROID_DIR="$ROOT_DIR/shared-native/android"
SHARED_IOS_DIR="$ROOT_DIR/shared-native/ios"
sync_dir_contents() {
local src_dir="$1"
local dst_dir="$2"
mkdir -p "$dst_dir"
if command -v rsync >/dev/null 2>&1; then
rsync -a --delete "$src_dir"/ "$dst_dir"/
else
find "$dst_dir" -mindepth 1 -maxdepth 1 -exec rm -rf {} +
cp -R "$src_dir"/. "$dst_dir"/
fi
}
copy_to_package() {
local package_name="$1"
local android_dst_dir="$ROOT_DIR/$package_name/android/src/main/java/com/streamchatreactnative/shared"
local ios_dst_dir="$ROOT_DIR/$package_name/ios/shared"
if [ -d "$SHARED_ANDROID_DIR" ]; then
sync_dir_contents "$SHARED_ANDROID_DIR" "$android_dst_dir"
else
echo "Skipping Android sync: missing $SHARED_ANDROID_DIR"
fi
if [ -d "$SHARED_IOS_DIR" ]; then
sync_dir_contents "$SHARED_IOS_DIR" "$ios_dst_dir"
else
echo "Skipping iOS sync: missing $SHARED_IOS_DIR"
fi
}
case "$TARGET" in
native-package)
copy_to_package "native-package"
;;
expo-package)
copy_to_package "expo-package"
;;
all)
copy_to_package "native-package"
copy_to_package "expo-package"
;;
*)
echo "Unknown target: $TARGET"
echo "Expected one of: native-package, expo-package, all"
exit 1
;;
esac
echo "Synchronized shared native directories for target: $TARGET"