mirror of
https://github.com/melgarafael/DeskcommCRM.git
synced 2026-10-02 09:34:46 +08:00
test(skills): a suíte do instalador volta ao test:shell, e o caso do pipe não mede o SIGPIPE do cat
- package.json: instalar-guias.test.sh volta ao test:shell, junto com o colisao-de-migration.test.sh e o test:db:update que vieram da main. - O caso 14 (--help pelo pipe) passava o script por `cat |`. Com pipefail, o cat leva SIGPIPE quando o bash sai do --help antes de ler tudo: num contêiner ubuntu:24.04 com pipe de 8 KB o caso dava 141 e 1 de 83 vermelho. Agora o script chega por redirecionamento da entrada padrão, com o mesmo $0 = bash. Medido: 83 de 83 no macOS e no contêiner. - O cabeçalho do script dizia que o README ensina '| bash -s -- --help'; o README ensina '| bash'. A frase agora diz as duas formas. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -25,7 +25,7 @@
|
||||
"test:unit": "vitest run",
|
||||
"test:db": "bash scripts/test-db.sh",
|
||||
"test:db:update": "bash scripts/test-update-com-dados.sh",
|
||||
"test:shell": "bash tests/shell/update-guard.test.sh && bash tests/shell/dono-do-projeto.test.sh && bash tests/shell/scheduler-entrypoint.test.sh && bash tests/shell/cron-sem-crontab-previo.test.sh && bash tests/shell/owner-id-por-email.test.sh && bash tests/shell/deskcomm-contribuir.test.sh && bash tests/shell/colisao-de-migration.test.sh && bash hostgator-setup-kit/test-validators.sh",
|
||||
"test:shell": "bash tests/shell/update-guard.test.sh && bash tests/shell/dono-do-projeto.test.sh && bash tests/shell/scheduler-entrypoint.test.sh && bash tests/shell/cron-sem-crontab-previo.test.sh && bash tests/shell/owner-id-por-email.test.sh && bash tests/shell/deskcomm-contribuir.test.sh && bash tests/shell/colisao-de-migration.test.sh && bash tests/shell/instalar-guias.test.sh && bash hostgator-setup-kit/test-validators.sh",
|
||||
"test:invariants": "bash scripts/test-db.sh",
|
||||
"lint:channels": "tsx scripts/lint-channels.ts",
|
||||
"lint:role-rank": "tsx scripts/lint-role-rank.ts",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
# O cabeçalho é o texto do --help, logo abaixo, e não um comentário: pelo caminho que o README
|
||||
# ensina (`curl ... | bash -s -- --help`) o script chega pela entrada padrão, `$0` vale `bash` e
|
||||
# não há arquivo de onde reler um comentário — o --help saía vazio, com exit 0.
|
||||
# O cabeçalho é o texto do --help, logo abaixo, e não um comentário: pelo pipe que o README ensina
|
||||
# (`curl ... | bash`; a ajuda é `curl ... | bash -s -- --help`) o script chega pela entrada padrão,
|
||||
# `$0` vale `bash` e não há arquivo de onde reler um comentário — o --help saía vazio, com exit 0.
|
||||
ajuda() {
|
||||
cat <<'AJUDA'
|
||||
instalar-guias.sh — deixa os guias do assistente (deskcomm-instalar, deskcomm-cliente-novo,
|
||||
|
||||
@@ -211,7 +211,9 @@ echo "14. --help"
|
||||
# arquivo saía vazio, com exit 0, justamente no caminho que o README ensina.
|
||||
for modo in arquivo pipe; do
|
||||
if [ "$modo" = arquivo ]; then saida="$(bash "$SCRIPT" --help 2>&1)"; code=$?
|
||||
else saida="$(cat "$SCRIPT" | bash -s -- --help 2>&1)"; code=$?; fi
|
||||
# Pela entrada padrão, sem `cat |`: com pipefail, o `cat` leva SIGPIPE quando o bash sai do --help
|
||||
# antes de ler tudo, e o 141 dele mascarava o exit do script (medido num contêiner com pipe de 8 KB).
|
||||
else saida="$(bash -s -- --help < "$SCRIPT" 2>&1)"; code=$?; fi
|
||||
checa "[ $code = 0 ]" "($modo) sai com 0"
|
||||
checa "grep -qF 'instalar-guias.sh — deixa os guias' <<<\"\$saida\"" "($modo) imprime a primeira linha do cabeçalho"
|
||||
# O recorte por número de linha já comeu o fim do cabeçalho uma vez: o aviso do Claude Code é a
|
||||
|
||||
Reference in New Issue
Block a user