#!/usr/bin/env bash # Compare Sockeye server source with AyaNova's (raven) after mapping AyaNova's names to # Sockeye's (see NAME-MAP.md), so only real code differences show. # # bash compare-with-raven.sh one line per shared file: differing lines, raven lines, path # bash compare-with-raven.sh util/DbUtil.cs the diff for one file (raven mapped < > sockeye) # # Read-only. Expects the repos side by side under one folder (C:\data\code). set -euo pipefail here="$(cd "$(dirname "$0")" && pwd)" R="$here/../../raven/server/AyaNova" S="$here/../server" # AyaNova name -> Sockeye name; order matters (longer names first) norm() { sed -E \ -e 's/AyaNovaVersion/SockeyeVersion/g' \ -e 's/AyaNova/Sockeye/g; s/ayanova/sockeye/g; s/AYANOVA_/SOCKEYE_/g' \ -e 's/public AyaType AyaType/public SockType SType/g' \ -e 's/AyaTypeId/SockTypeId/g; s/AyaType/SockType/g; s/ayaType/sockType/g; s/ayatype/socktype/g' \ -e 's/\bAType\b/SockType/g; s/\batype\b/socktype/g' \ -e 's/AyaEvent/SockEvent/g; s/ayaEvent/sockEvent/g; s/ayevent/sockevent/g' \ -e 's/AyaDaysOfWeek/SockDaysOfWeek/g' \ -e 's/\bAyId\b/SockId/g; s/\bayId\b/sockId/g; s/\bayid\b/sockid/g' \ "$1" | tr -d '\r' } if [ $# -gt 0 ]; then diff <(norm "$R/$1") <(tr -d '\r' < "$S/$1") || true exit 0 fi (cd "$R" && find . -name '*.cs' -not -path './obj/*' -not -path './bin/*') | sort | while read -r f; do [ -f "$S/$f" ] || continue d=$(diff <(norm "$R/$f") <(tr -d '\r' < "$S/$f") | grep -c '^[<>]' || true) echo "$d $(wc -l < "$R/$f") ${f#./}" done