fix(build): remove pipefail-unsafe matchers
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user