@@ -6,18 +6,20 @@ SUPPLEMENTAL_REPORT_PATH="${2:-build/supplemental-hebrew-titles.json}"
66SUPPLEMENTAL_STATUS_PATH=" ${3:- build/ supplemental-report-status.json} "
77DOWNLOAD_STATUS_PATH=" ${4:- build/ supplemental-download-status.json} "
88OTZARIA_REPORT_PATH=" ${5:- build/ supplemental-otzaria-report.json} "
9- IMPORT_VALIDATION_PATH =" ${6:- build/ supplemental-import -validation.json} "
9+ ZIP_VALIDATION_PATH =" ${6:- build/ supplemental-zip -validation.json} "
1010SEED_TAG=" ${7:- לא ידוע} "
1111ARTIFACT_NAME=" ${8:- לא ידוע} "
1212SUPPLEMENTAL_ENABLED=" ${9:- לא ידוע} "
13+ IMPORT_VALIDATION_PATH=" ${10:- build/ supplemental-import-validation.json} "
14+ IMPORTER_VALIDATION_ENABLED=" ${11:- false} "
1315
1416md_escape () { sed -e ' s/|/\\|/g' -e ' :a;N;$!ba;s/\r\{0,1\}\n/ /g' ; }
1517json_value () { jq -r " $2 // 0" " $1 " 2> /dev/null || printf ' לא זמין' ; }
1618
1719{
1820 echo " # דוח מפורט — ייצוא ספריא ל־Otzaria ZIP"
1921 echo
20- echo " > Seed: \` $SEED_TAG \` · Artifact: \` $ARTIFACT_NAME \` · ZIP משלים הופעל: \` $SUPPLEMENTAL_ENABLED \` "
22+ echo " > Seed: \` $SEED_TAG \` · Artifact: \` $ARTIFACT_NAME \` · ZIP משלים הופעל: \` $SUPPLEMENTAL_ENABLED \` · בדיקת importer הופעלה: \` $IMPORTER_VALIDATION_ENABLED \` "
2123 echo
2224 echo " הדוח מפריד בין הייצוא הרגיל של ספריא לבין ספרים עבריים שחסרים בו ונמצאו דרך ה־API. כל קובצי ה־JSON הגולמיים מצורפים ל־artifacts לצורך בדיקה מלאה."
2325 echo
@@ -204,26 +206,46 @@ json_value() { jq -r "$2 // 0" "$1" 2>/dev/null || printf 'לא זמין'; }
204206 echo " > לא נוצר דוח ייצוא משלים."
205207 fi
206208 echo
207- if [[ -s " $IMPORT_VALIDATION_PATH " ]]; then
208- verified=$( jq -r ' .verified // false' " $IMPORT_VALIDATION_PATH " )
209- expected=$( json_value " $IMPORT_VALIDATION_PATH " ' .expectedBooks // .addedBooks' )
209+ if [[ -s " $ZIP_VALIDATION_PATH " ]]; then
210+ verified=$( jq -r ' .verified // false' " $ZIP_VALIDATION_PATH " )
211+ books=$( json_value " $ZIP_VALIDATION_PATH " ' .exportedBooks' )
212+ text_files=$( json_value " $ZIP_VALIDATION_PATH " ' .textFiles' )
213+ links=$( json_value " $ZIP_VALIDATION_PATH " ' .exportedLinks' )
214+ zip_bytes=$( json_value " $ZIP_VALIDATION_PATH " ' .zipBytes' )
215+ zip_sha=$( jq -r ' .zipSha256 // "לא נרשם"' " $ZIP_VALIDATION_PATH " )
216+ if [[ " $verified " == " true" ]]; then
217+ echo " > ✅ ה־ZIP המשלים תקין: **$books ** ספרים, **$text_files ** קובצי טקסט, **$links ** קישורים וגודל **$zip_bytes ** bytes."
218+ echo " > SHA-256: \` $zip_sha \` "
219+ else
220+ echo " > ❌ בדיקת מבנה ה־ZIP המשלים לא הושלמה בהצלחה."
221+ fi
222+ elif [[ " $SUPPLEMENTAL_ENABLED " == " true" ]]; then
223+ echo " > בדיקת ה־ZIP המשלים לא הושלמה או שלא נוצר ZIP."
224+ else
225+ echo " > יצירת ZIP משלים לא הופעלה בהרצה זו."
226+ fi
227+ echo
228+ echo " ### בדיקת importer האופציונלית"
229+ echo
230+ if [[ " $IMPORTER_VALIDATION_ENABLED " == " true" && -s " $IMPORT_VALIDATION_PATH " ]]; then
231+ importer_verified=$( jq -r ' .verified // false' " $IMPORT_VALIDATION_PATH " )
232+ expected=$( json_value " $IMPORT_VALIDATION_PATH " ' .expectedBooks' )
210233 added=$( json_value " $IMPORT_VALIDATION_PATH " ' .addedBooks' )
211- importer_ids=$( json_value " $IMPORT_VALIDATION_PATH " ' .importerIds // .addedBooks ' )
212- unique_ids=$( json_value " $IMPORT_VALIDATION_PATH " ' .uniqueImporterIds // .addedBooks ' )
213- colliding_ids =$( json_value " $IMPORT_VALIDATION_PATH " ' .collidingSeedIds' )
234+ importer_ids=$( json_value " $IMPORT_VALIDATION_PATH " ' .importerIds' )
235+ unique_ids=$( json_value " $IMPORT_VALIDATION_PATH " ' .uniqueImporterIds' )
236+ collisions =$( json_value " $IMPORT_VALIDATION_PATH " ' .collidingSeedIds' )
214237 outbound=$( json_value " $IMPORT_VALIDATION_PATH " ' .outboundLinksToSeed' )
215- state_sha=$( jq -r ' .buildStateSha256 // "לא נרשם"' " $IMPORT_VALIDATION_PATH " )
216- if [[ " $verified " == " true" ]]; then
217- echo " > ✅ ה־ZIP המשלים אומת באמצעות importer אמיתי של Otzaria: צפויים **$expected **, נוספו **$added **, נרשמו **$importer_ids ** מזהים (**$unique_ids ** ייחודיים), התנגשויות מול seed: **$colliding_ids **, וקישורים לספרי seed: **$outbound **."
218- echo " > buildstate של ה־seed: \` $state_sha \` "
238+ if [[ " $importer_verified " == " true" ]]; then
239+ echo " > ✅ בדיקת הייבוא הופעלה ועברה: צפויים **$expected **, נוספו **$added **, נרשמו **$importer_ids ** מזהים (**$unique_ids ** ייחודיים), התנגשויות: **$collisions **, קישורים לספרי seed: **$outbound **."
219240 else
220- validation_error =$( jq -r ' .error // "סיבת הכשל לא נרשמה"' " $IMPORT_VALIDATION_PATH " )
221- echo " > ❌ אימות ה־ZIP נכשל : $validation_error . צפויים **$expected **, נוספו **$added **, נרשמו ** $importer_ids ** מזהים (** $unique_ids ** ייחודיים), התנגשויות מול seed : **$colliding_ids **."
241+ importer_error =$( jq -r ' .error // "סיבה לא נרשמה"' " $IMPORT_VALIDATION_PATH " )
242+ echo " > ❌ בדיקת הייבוא האופציונלית הופעלה ונכשלה : $importer_error . צפויים **$expected **, נוספו **$added **, התנגשויות: **$collisions **."
222243 fi
244+ elif [[ " $IMPORTER_VALIDATION_ENABLED " == " true" ]]; then
245+ echo " > בדיקת הייבוא התבקשה אך לא הושלמה. היא רצה רק כאשר גם ה־ZIP המשלים הופעל ונמצאו ספרים משלימים."
223246 else
224- echo " > אימות ה־ZIP המשלים לא בוצע או לא הושלם ."
247+ echo " > בדיקת הייבוא לא הופעלה. זהו מצב ברירת המחדל, ואין לה השפעה על יצירת קובצי ה־ZIP ."
225248 fi
226-
227249 echo
228250 echo " ## 5. קובצי אבחון שנוצרו בהרצה"
229251 echo
@@ -238,7 +260,6 @@ json_value() { jq -r "$2 // 0" "$1" 2>/dev/null || printf 'לא זמין'; }
238260 echo " | \` $path \` | לא נוצר | — | $description |"
239261 fi
240262 done << EOF
241- build/seed-seforim.db.buildstate|מצב הקצאת המזהים של מסד ה־seed
242263build/incremental-sefaria-otzaria.zip|ה־ZIP הרגיל שנוצר
243264build/supplemental-sefaria-otzaria.zip|ה־ZIP המשלים שנוצר
244265$SEFARIA_REPORT_PATH |דוח הייצוא הרגיל ורשימות המועמדים
@@ -248,7 +269,9 @@ $DOWNLOAD_STATUS_PATH|סטטוס הורדה, סינון וקישורים לכל
248269build/supplemental-merged-files.txt|רשימת קובצי merged שהועברו לייצוא
249270build/supplemental-api-links.json|כל קישורי ה־API שנאספו
250271$OTZARIA_REPORT_PATH |דוח הייצוא של ה־ZIP המשלים
251- $IMPORT_VALIDATION_PATH |תוצאת אימות importer מול מסד ה־seed
272+ $ZIP_VALIDATION_PATH |בדיקת מבנה, ספירת טקסטים ו־SHA-256 של ה־ZIP המשלים
273+ $IMPORT_VALIDATION_PATH |תוצאת בדיקת ה־importer האופציונלית
274+ build/supplemental-validation-book-ids.txt|מזהי הספרים שנוספו בבדיקת ה־importer
252275EOF
253276 echo
254277 echo " _הערה: רשימת ״סכמות ללא merged.json״ היא רשימת מועמדים רחבה. רשימת ״הספרים העבריים החסרים״ היא התוצאה המאומתת מול גרסאות ה־API של ספריא._"
0 commit comments