From 1aaab8c50c37e61b5ae50d6efa8ae8df3b5b23cc Mon Sep 17 00:00:00 2001 From: Ramesh Padmanabhaiah Date: Tue, 7 Jul 2026 16:59:23 -0700 Subject: [PATCH] Reuse file section marker validation --- CHANGELOG.md | 1 + lib/bash/file/lib_file.sh | 14 ++++---------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ec570c8..5c06108 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and versions are tracked in the repo-root `VERSION` file. - Hardened GitHub helper pass-by-name outputs against internal variable shadowing, added a non-optional `gh_infer_repo_from_origin` error message, and deduplicated worktree parsing loops. +- Reused shared marker validation inside `update_file_section`. ## [1.2.0] - 2026-07-04 diff --git a/lib/bash/file/lib_file.sh b/lib/bash/file/lib_file.sh index 94a8531..e3a0a21 100644 --- a/lib/bash/file/lib_file.sh +++ b/lib/bash/file/lib_file.sh @@ -286,20 +286,14 @@ update_file_section() { return 0 fi - local beginning_marker_count end_marker_count - beginning_marker_count=$(grep -cxF -- "$beginning_marker" "$target_file" || true) - end_marker_count=$(grep -cxF -- "$end_marker" "$target_file" || true) - if ((beginning_marker_count != end_marker_count)); then - log_error "Asymmetric markers in '$target_file': $beginning_marker_count start, $end_marker_count end. Manual repair needed." - return 1 - fi - if ((beginning_marker_count > 0)) && ! __file_section_markers_ordered__ "$target_file" "$beginning_marker" "$end_marker"; then - log_error "Misordered markers in '$target_file'. Manual repair needed." + local __file_update_beginning_marker_count __file_update_end_marker_count + if ! __file_section_marker_counts__ "$target_file" "$beginning_marker" "$end_marker" \ + __file_update_beginning_marker_count __file_update_end_marker_count; then return 1 fi local section_exists=false - if ((beginning_marker_count > 0)); then + if ((__file_update_beginning_marker_count > 0)); then section_exists=true fi