fix(build): remove pipefail-unsafe matchers

This commit is contained in:
2026-09-07 20:34:50 +05:00
parent 6c286d1ff5
commit bf10810cfc
+12 -5
View File
@@ -1005,15 +1005,22 @@ run_admin_login_acceptance() {
#
# Проверяются КОМАНДЫ: объяснение, почему такой строки здесь больше нет,
# обязано называть её по имени, поэтому текст вне ```-блоков не считается.
local env_doc
local env_doc fenced_code
while IFS= read -r env_doc; do
[ -n "$env_doc" ] || continue
if fenced_code_of "$env_doc" \
| grep -qE '(^|[;&|[:space:]])(source|\.)[[:space:]]+[^[:space:]]*(/etc/hy2xs/|hy2xs\.env|bootstrap-admin\.secret)'; then
# fenced_code_of сначала обязан дочитать документ целиком. `grep -q` в
# pipeline под pipefail закрывал канал после первого совпадения и мог
# превратить найденную запрещённую команду в ложный PASS через SIGPIPE 141.
fenced_code="$(fenced_code_of "$env_doc")" \
|| fail "acceptance: не удалось прочитать fenced code из $env_doc"
if grep -qE \
'(^|[;&|[:space:]])(source|\.)[[:space:]]+[^[:space:]]*(/etc/hy2xs/|hy2xs\.env|bootstrap-admin\.secret)' \
<<<"$fenced_code"; then
fail "acceptance: $env_doc снова предлагает исполнить env-файл шеллом (source/.)"
fi
if fenced_code_of "$env_doc" \
| grep -qE 'eval[[:space:]]+[^|]*(hy2xs\.env|bootstrap-admin\.secret)'; then
if grep -qE \
'eval[[:space:]]+[^|]*(hy2xs\.env|bootstrap-admin\.secret)' \
<<<"$fenced_code"; then
fail "acceptance: $env_doc снова предлагает eval над env-файлом"
fi
done <<EOF