5959# ── Collect comparable files from the standalone repo ────────────────
6060# Excludes: target/, node_modules/, temporary-prompts/, scripts/codegen/
6161# (these are build artifacts or standalone-only content)
62- TMPFILE=$( mktemp)
63- trap ' rm -f "$TMPFILE"' EXIT
62+ TMPFILE_STANDALONE=$( mktemp)
63+ TMPFILE_MONO=$( mktemp)
64+ trap ' rm -f "$TMPFILE_STANDALONE" "$TMPFILE_MONO"' EXIT
6465
6566(cd " $STANDALONE " && find . -type f \( -name " pom.xml" -o -name " *.java" -o -name " *.properties" \) \
6667 | grep -v ' /target/' \
6768 | grep -v ' /node_modules/' \
6869 | grep -v ' ^\./temporary-prompts/' \
6970 | grep -v ' ^\./scripts/codegen/' \
7071 | sed ' s|^\./||' \
71- | sort) > " $TMPFILE "
72+ | sort) > " $TMPFILE_STANDALONE "
73+
74+ # ── Collect comparable files from the monorepo ───────────────────────
75+ # Excludes: target/, node_modules/, scripts/codegen/
76+ (cd " $MONO_JAVA " && find . -type f \( -name " pom.xml" -o -name " *.java" -o -name " *.properties" \) \
77+ | grep -v ' /target/' \
78+ | grep -v ' /node_modules/' \
79+ | grep -v ' ^\./scripts/codegen/' \
80+ | sed ' s|^\./||' \
81+ | sort) > " $TMPFILE_MONO "
7282
7383# ── Compare ──────────────────────────────────────────────────────────
7484DIFFER_COUNT=0
75- MISSING_COUNT=0
85+ MISSING_FROM_MONO_COUNT=0
86+ MISSING_FROM_STANDALONE_COUNT=0
7687SAME_COUNT=0
7788DIFFER_LIST=" "
78- MISSING_LIST=" "
89+ MISSING_FROM_MONO_LIST=" "
90+ MISSING_FROM_STANDALONE_LIST=" "
7991
92+ # Check standalone files against monorepo
8093while IFS= read -r relpath; do
8194 standalone_file=" ${STANDALONE} /${relpath} "
8295 mono_file=" ${MONO_JAVA} /${relpath} "
8396
8497 if [ ! -f " $mono_file " ]; then
85- MISSING_COUNT =$(( MISSING_COUNT + 1 ))
86- MISSING_LIST =" ${MISSING_LIST }${relpath}
98+ MISSING_FROM_MONO_COUNT =$(( MISSING_FROM_MONO_COUNT + 1 ))
99+ MISSING_FROM_MONO_LIST =" ${MISSING_FROM_MONO_LIST }${relpath}
87100"
88101 elif ! diff -q " $standalone_file " " $mono_file " > /dev/null 2>&1 ; then
89102 DIFFER_COUNT=$(( DIFFER_COUNT + 1 ))
@@ -92,15 +105,28 @@ while IFS= read -r relpath; do
92105 else
93106 SAME_COUNT=$(( SAME_COUNT + 1 ))
94107 fi
95- done < " $TMPFILE "
108+ done < " $TMPFILE_STANDALONE "
96109
97- TOTAL_COUNT=$( wc -l < " $TMPFILE " | tr -d ' ' )
110+ # Check monorepo files that don't exist in standalone
111+ while IFS= read -r relpath; do
112+ standalone_file=" ${STANDALONE} /${relpath} "
113+
114+ if [ ! -f " $standalone_file " ]; then
115+ MISSING_FROM_STANDALONE_COUNT=$(( MISSING_FROM_STANDALONE_COUNT + 1 ))
116+ MISSING_FROM_STANDALONE_LIST=" ${MISSING_FROM_STANDALONE_LIST}${relpath}
117+ "
118+ fi
119+ done < " $TMPFILE_MONO "
120+
121+ STANDALONE_TOTAL=$( wc -l < " $TMPFILE_STANDALONE " | tr -d ' ' )
122+ MONO_TOTAL=$( wc -l < " $TMPFILE_MONO " | tr -d ' ' )
98123
99124# ── Output ───────────────────────────────────────────────────────────
100- echo " Compared ${TOTAL_COUNT} files (pom.xml, *.java, *.properties) "
125+ echo " Standalone files: ${STANDALONE_TOTAL} Monorepo files: ${MONO_TOTAL} "
101126echo " Identical: ${SAME_COUNT} "
102127echo " Differ: ${DIFFER_COUNT} "
103- echo " Missing from monorepo: ${MISSING_COUNT} "
128+ echo " Only in standalone (missing from monorepo): ${MISSING_FROM_MONO_COUNT} "
129+ echo " Only in monorepo (missing from standalone): ${MISSING_FROM_STANDALONE_COUNT} "
104130echo " "
105131
106132if [ " $DIFFER_COUNT " -gt 0 ]; then
@@ -112,16 +138,25 @@ if [ "$DIFFER_COUNT" -gt 0 ]; then
112138 echo " "
113139fi
114140
115- if [ " $MISSING_COUNT " -gt 0 ]; then
141+ if [ " $MISSING_FROM_MONO_COUNT " -gt 0 ]; then
116142 echo " The following files exist in standalone but NOT in monorepo:"
117143 echo " "
118- printf ' %s' " $MISSING_LIST " | while IFS= read -r f; do
144+ printf ' %s' " $MISSING_FROM_MONO_LIST " | while IFS= read -r f; do
119145 [ -n " $f " ] && echo " $f "
120146 done
121147 echo " "
122148fi
123149
124- if [ " $DIFFER_COUNT " -eq 0 ] && [ " $MISSING_COUNT " -eq 0 ]; then
150+ if [ " $MISSING_FROM_STANDALONE_COUNT " -gt 0 ]; then
151+ echo " The following files exist in monorepo but NOT in standalone:"
152+ echo " "
153+ printf ' %s' " $MISSING_FROM_STANDALONE_LIST " | while IFS= read -r f; do
154+ [ -n " $f " ] && echo " $f "
155+ done
156+ echo " "
157+ fi
158+
159+ if [ " $DIFFER_COUNT " -eq 0 ] && [ " $MISSING_FROM_MONO_COUNT " -eq 0 ] && [ " $MISSING_FROM_STANDALONE_COUNT " -eq 0 ]; then
125160 echo " All files are identical."
126161fi
127162
@@ -139,3 +174,31 @@ if [ "$SHOW_DIFF" = true ] && [ "$DIFFER_COUNT" -gt 0 ]; then
139174 fi
140175 done
141176fi
177+
178+ if [ " $SHOW_DIFF " = true ] && [ " $MISSING_FROM_STANDALONE_COUNT " -gt 0 ]; then
179+ echo " "
180+ echo " ================================================================================"
181+ echo " Files only in monorepo (new files to port to standalone):"
182+ echo " ================================================================================"
183+ printf ' %s' " $MISSING_FROM_STANDALONE_LIST " | while IFS= read -r f; do
184+ if [ -n " $f " ]; then
185+ echo " "
186+ echo " +++ monorepo/java/$f "
187+ diff -u /dev/null " ${MONO_JAVA} /${f} " || true
188+ fi
189+ done
190+ fi
191+
192+ if [ " $SHOW_DIFF " = true ] && [ " $MISSING_FROM_MONO_COUNT " -gt 0 ]; then
193+ echo " "
194+ echo " ================================================================================"
195+ echo " Files only in standalone (not present in monorepo):"
196+ echo " ================================================================================"
197+ printf ' %s' " $MISSING_FROM_MONO_LIST " | while IFS= read -r f; do
198+ if [ -n " $f " ]; then
199+ echo " "
200+ echo " --- standalone/$f "
201+ diff -u " ${STANDALONE} /${f} " /dev/null || true
202+ fi
203+ done
204+ fi
0 commit comments