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>
39 lines
1.5 KiB
Bash
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
|