44# This is a composite script to use from a composite GitHub action.
55#
66
7+ # NOTE:
8+ #
9+ # Yaml specific user variables (to set):
10+ #
11+ # * DISABLE_YAML_EDIT_FORMAT_RESTORE_BY_DIFF_MERGE_WORKAROUND
12+ #
13+
714[[ -z " $GH_WORKFLOW_ROOT " ]] && {
815 echo " $0 : error: \` GH_WORKFLOW_ROOT\` variable must be defined." >&2
916 exit 255
@@ -198,7 +205,7 @@ for i in $("${YQ_CMDLINE_READ[@]}" '."content-config".entries[0].dirs|keys|.[]'
198205 fi
199206
200207 if [[ "$config_index_dir " != "$index_dir " ]]; then
201- gh_print_warning_ln "$0 : warning: invalid index file directory entry: dirs[$i ]:"$'\n'" config_index_dir =\` $config_index_dir \` "$'\n'" index_dir=\` $index_dir \` "
208+ gh_print_warning_ln "$0 : warning: invalid index file directory entry: dirs[$i ]:"$'\n'" config_dir =\` $config_dir \` "$'\n'" index_dir=\` $index_dir \` "$'\n'" content_index_dir= \` $content_index_dir \` "$'\n'" config_index_dir= \` $config_index_dir \` "
202209
203210 (( stats_failed_inc++ ))
204211
@@ -295,10 +302,22 @@ for i in $("${YQ_CMDLINE_READ[@]}" '."content-config".entries[0].dirs|keys|.[]'
295302 if [[ -n "$index_file_next_md5_hash " && "$index_file_next_md5_hash " != "$index_file_prev_md5_hash " ]]; then
296303 index_file_next_timestamp="$( date --utc +%FT%TZ) "
297304
298- yq_edit 'content-index' "$content_index_file " "$TEMP_DIR /content-index-[$i ][$j ]-edited.yml" \
299- ".\"content-index\".entries[0].dirs[$i ].files[$j ].\"md5-hash\"=\"$index_file_next_md5_hash \"" && \
300- yq_diff "$content_index_file " "$TEMP_DIR /content-index-[$i ][$j ]-edited.yml" "$TEMP_DIR /content-index-[$i ][$j ]-edited.diff" && \
301- yq_patch "$content_index_file " "$TEMP_DIR /content-index-[$i ][$j ]-edited.diff" "$TEMP_DIR /content-index-[$i ][$j ].yml" "$content_index_file "
305+ {
306+ # update index file fields
307+ if (( DISABLE_YAML_EDIT_FORMAT_RESTORE_BY_DIFF_MERGE_WORKAROUND )); then
308+ yq_edit 'content-index' 'edit' "$content_index_file " "$TEMP_DIR /content-index-[$i ][$j ]-edited.yml" \
309+ ".\"content-index\".entries[0].dirs[$i ].files[$j ].\"md5-hash\"=\"$index_file_next_md5_hash \"" && \
310+ mv -Tf "$TEMP_DIR /content-index-[$i ][$j ]-edited.yml" "$content_index_file "
311+ else
312+ yq_edit 'content-index' 'edit' "$content_index_file " "$TEMP_DIR /content-index-[$i ][$j ]-edited.yml" \
313+ ".\"content-index\".entries[0].dirs[$i ].files[$j ].\"md5-hash\"=\"$index_file_next_md5_hash \"" && \
314+ yq_diff "$TEMP_DIR /content-index-[$i ][$j ]-edited.yml" "$content_index_file " "$TEMP_DIR /content-index-[$i ][$j ]-edited.diff" && \
315+ yq_restore_edited_uniform_diff "$TEMP_DIR /content-index-[$i ][$j ]-edited.diff" "$TEMP_DIR /content-index-[$i ][$j ]-edited-restored.diff" && \
316+ yq_patch "$TEMP_DIR /content-index-[$i ][$j ]-edited.yml" "$TEMP_DIR /content-index-[$i ][$j ]-edited-restored.diff" "$TEMP_DIR /content-index-[$i ][$j ].yml" "$content_index_file "
317+ fi
318+ } || {
319+ (( stats_failed_inc++ ))
320+ }
302321
303322 echo '---'
304323 fi
@@ -395,13 +414,26 @@ for i in $("${YQ_CMDLINE_READ[@]}" '."content-config".entries[0].dirs|keys|.[]'
395414 (( stats_skipped_inc++ ))
396415 fi
397416
398- # update index file fields
399- yq_edit 'content-index' "$content_index_file " "$TEMP_DIR /content-index-[$i ][$j ]-edited.yml" \
400- ".\"content-index\".entries[0].dirs[$i ].files[$j ].\"queried-url\"=\"$config_query_url \"" \
401- ".\"content-index\".entries[0].dirs[$i ].files[$j ].\"md5-hash\"=\"$index_file_next_md5_hash \"" \
402- ".\"content-index\".entries[0].dirs[$i ].files[$j ].timestamp=\"$index_file_next_timestamp \"" && \
403- yq_diff "$content_index_file " "$TEMP_DIR /content-index-[$i ][$j ]-edited.yml" "$TEMP_DIR /content-index-[$i ][$j ]-edited.diff" && \
404- yq_patch "$content_index_file " "$TEMP_DIR /content-index-[$i ][$j ]-edited.diff" "$TEMP_DIR /content-index-[$i ][$j ].yml" "$content_index_file "
417+ {
418+ # update index file fields
419+ if (( DISABLE_YAML_EDIT_FORMAT_RESTORE_BY_DIFF_MERGE_WORKAROUND )); then
420+ yq_edit 'content-index' 'edit' "$content_index_file " "$TEMP_DIR /content-index-[$i ][$j ]-edited.yml" \
421+ ".\"content-index\".entries[0].dirs[$i ].files[$j ].\"queried-url\"=\"$config_query_url \"" \
422+ ".\"content-index\".entries[0].dirs[$i ].files[$j ].\"md5-hash\"=\"$index_file_next_md5_hash \"" \
423+ ".\"content-index\".entries[0].dirs[$i ].files[$j ].timestamp=\"$index_file_next_timestamp \"" && \
424+ mv -Tf "$TEMP_DIR /content-index-[$i ][$j ]-edited.yml" "$content_index_file "
425+ else
426+ yq_edit 'content-index' 'edit' "$content_index_file " "$TEMP_DIR /content-index-[$i ][$j ]-edited.yml" \
427+ ".\"content-index\".entries[0].dirs[$i ].files[$j ].\"queried-url\"=\"$config_query_url \"" \
428+ ".\"content-index\".entries[0].dirs[$i ].files[$j ].\"md5-hash\"=\"$index_file_next_md5_hash \"" \
429+ ".\"content-index\".entries[0].dirs[$i ].files[$j ].timestamp=\"$index_file_next_timestamp \"" && \
430+ yq_diff "$TEMP_DIR /content-index-[$i ][$j ]-edited.yml" "$content_index_file " "$TEMP_DIR /content-index-[$i ][$j ]-edited.diff" && \
431+ yq_restore_edited_uniform_diff "$TEMP_DIR /content-index-[$i ][$j ]-edited.diff" "$TEMP_DIR /content-index-[$i ][$j ]-edited-restored.diff" && \
432+ yq_patch "$TEMP_DIR /content-index-[$i ][$j ]-edited.yml" "$TEMP_DIR /content-index-[$i ][$j ]-edited-restored.diff" "$TEMP_DIR /content-index-[$i ][$j ].yml" "$content_index_file "
433+ fi
434+ } || {
435+ (( stats_failed_inc++ ))
436+ }
405437
406438 echo '---'
407439 done
@@ -410,11 +442,22 @@ done
410442content_index_file_next_md5_hash=( $( md5sum -b " $content_index_file " ) )
411443
412444if (( stats_changed_inc )) || [[ "$content_index_file_next_md5_hash " != "$content_index_file_prev_md5_hash " ]]; then
413- # update index file change timestamp
414- yq_edit 'content-index' "$content_index_file " "$TEMP_DIR /content-index-[timestamp].yml" \
415- ".\"content-index\".timestamp=\"$index_file_next_timestamp \"" && \
416- yq_diff "$content_index_file " "$TEMP_DIR /content-index-[timestamp].yml" "$TEMP_DIR /content-index-[timestamp].diff" && \
417- yq_patch "$content_index_file " "$TEMP_DIR /content-index-[timestamp].diff" "$TEMP_DIR /content-index-[timestamp].yml" "$content_index_file "
445+ {
446+ # update index file change timestamp
447+ if (( DISABLE_YAML_EDIT_FORMAT_RESTORE_BY_DIFF_MERGE_WORKAROUND )); then
448+ yq_edit 'content-index' 'edit' "$content_index_file " "$TEMP_DIR /content-index-[timestamp]-edited.yml" \
449+ ".\"content-index\".timestamp=\"$index_file_next_timestamp \"" && \
450+ mv -Tf "$TEMP_DIR /content-index-[timestamp]-edited.yml" "$content_index_file "
451+ else
452+ yq_edit 'content-index' 'edit' "$content_index_file " "$TEMP_DIR /content-index-[timestamp]-edited.yml" \
453+ ".\"content-index\".timestamp=\"$index_file_next_timestamp \"" && \
454+ yq_diff "$TEMP_DIR /content-index-[timestamp]-edited.yml" "$content_index_file " "$TEMP_DIR /content-index-[timestamp]-edited.diff" && \
455+ yq_restore_edited_uniform_diff "$TEMP_DIR /content-index-[timestamp]-edited.diff" "$TEMP_DIR /content-index-[timestamp]-edited-restored.diff" && \
456+ yq_patch "$TEMP_DIR /content-index-[timestamp]-edited.yml" "$TEMP_DIR /content-index-[timestamp]-edited-restored.diff" "$TEMP_DIR /content-index-[timestamp].yml" "$content_index_file "
457+ fi
458+ } || {
459+ (( stats_failed_inc++ ))
460+ }
418461
419462 echo '---'
420463fi
0 commit comments