diff options
| author | Danilo M. <danix@danix.xyz> | 2026-07-09 10:26:38 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-07-09 10:26:38 +0200 |
| commit | 3615b979a1dd6e379c0be87e2be36af49905c609 (patch) | |
| tree | 63786353c61821952a8296164513894bc0b26228 | |
| parent | f2eba98dddee1e0da6acd46c8fbb1ee79fca6b70 (diff) | |
| download | mkhintfile-3615b979a1dd6e379c0be87e2be36af49905c609.tar.gz mkhintfile-3615b979a1dd6e379c0be87e2be36af49905c609.zip | |
feat: _extract_nvchecker_section reads one config block
| -rwxr-xr-x | mkhint | 13 | ||||
| -rwxr-xr-x | tests/mkhint_test.sh | 25 |
2 files changed, 38 insertions, 0 deletions
@@ -817,6 +817,19 @@ _has_nvchecker_section() { "$NVCHECKER_CONFIG" } +# Print the [pkg] section (header + body) from NVCHECKER_CONFIG: from the label +# line until the next line starting with '[' or EOF. Empty if not found. +_extract_nvchecker_section() { + local pkg="$1" + [[ -f "$NVCHECKER_CONFIG" ]] || return 0 + local label; label=$(_nvchecker_label "$pkg") + awk -v lbl="$label" ' + $0==lbl { grab=1; print; next } + grab && /^\[/ { exit } + grab { print } + ' "$NVCHECKER_CONFIG" +} + # Extract a package name from a language-registry download URL. # Args: <url> <prgnam-fallback>. Prints the parsed name, or the fallback # (PRGNAM) when no host-specific pattern matches. diff --git a/tests/mkhint_test.sh b/tests/mkhint_test.sh index 075f542..7af0e7f 100755 --- a/tests/mkhint_test.sh +++ b/tests/mkhint_test.sh @@ -2015,6 +2015,31 @@ assert_contains "cran field" "$d_out" 'cran = "foo"' unk=$(awk '/^### unknown/{f=1;next} /^### end/{f=0} f' "$d_out") assert_exit_code "unknown host empty body" 0 "$( [[ -z "${unk//[[:space:]]/}" ]]; echo $? )" +# ── T-NV3: _extract_nvchecker_section prints one section ────────────────────── +echo "" +echo "T-NV3: _extract_nvchecker_section returns the [pkg] block only" +NVCHECKER_CONFIG="$MOCK_BASE/nv_extract.toml" +cat > "$NVCHECKER_CONFIG" << 'EOF' +[alpha] +source = "github" +github = "a/alpha" + +[beta] +source = "pypi" +pypi = "beta" + +[gamma] +source = "cran" +cran = "gamma" +EOF +ex_out="$MOCK_BASE/nv_extract.txt" +_extract_nvchecker_section beta > "$ex_out" +assert_contains "beta header" "$ex_out" '^\[beta\]$' +assert_contains "beta field" "$ex_out" 'pypi = "beta"' +assert_not_contains "no alpha" "$ex_out" 'alpha' +assert_not_contains "no gamma" "$ex_out" 'gamma' +NVCHECKER_CONFIG="$MOCK_BASE/nvchecker.toml" + # ─── SUMMARY ────────────────────────────────────────────────────────────────── teardown |
