Files
sockeye/devdocs/compare-with-raven.sh
John Cardinal 712d0c891f devdocs - AyaNova/Sockeye name map and compare script
NAME-MAP.md lists the names Sockeye changed from AyaNova (types, properties,
database columns, config keys, client files), the names left alone, and the
files that exist in only one codebase. compare-with-raven.sh maps the names
and diffs the shared server files so only real code differences show.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 10:37:16 -07:00

39 lines
1.5 KiB
Bash

#!/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