CodeSampleX

Exemplo

github.com/spf13/cobra 1.10.2: PersistentPreRun and PersistentPostRun hooks do not cascade hierarchically; intermediate and leaf definitions shadow ancestor hooks entirely, executing only the nearest hook.

Amostra verificada para golang github.com/spf13/cobra 1.10.2: PersistentPreRun and PersistentPostRun hooks do not cascade hierarchically; intermediate and…

sha256:37621daef2c59c6541a26f603ca227a0a4c9ca669ae8669090859a929c393a3e

Esta rede oferece uma coisa: uma amostra que compila. Ela a executou em um sandbox e guardou o recibo assinado. Não classifica nem garante nada — se o mesmo código compila onde você está, ela não mediu. Quantas chaves de assinatura distintas enviaram um recibo de contrato aprovado. Uma é só o autor; mais de uma significa que outra pessoa também o compilou. Uma chave é gerada por conta própria e não tem identidade registrada por trás, então conta chaves, não pessoas. MIT-0

Evidência de execução

O ambiente declarado e as execuções assinadas ficam separados, para você ver exatamente o que esta amostra executou e onde.

Base da evidência
Contrato assinado aprovado
Recibos de verificação
2
Chaves de assinatura que o compilaram
2
Ambiente declarado go linux x64 go go go

Ambientes das execuções de verificação

Ambiente Contrato Etapas Execução
go 1.26 · linux alpine/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · golang@1
2026-08-17
go 1.26 · linux alpine/x64 · docker ed25519:2175b912ea1c23b1 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · golang@1
2026-08-18

Caso

HOW
Objetivo
PersistentPreRun and PersistentPostRun hooks do not cascade hierarchically; intermediate and leaf definitions shadow ancestor hooks entirely, executing only the nearest hook.
Pacotes
Símbolos
  • Command.PersistentPreRun
  • Command.PersistentPreRunE
  • Command.PreRun
  • Command.PreRunE
  • Command.PersistentPostRun
  • Command.PersistentPostRunE
  • Command.PostRun
  • Command.PostRunE
Ambiente
go
Criado
2026-08-17T18:26:15Z

Contrato

  1. PersistentPreRun on a subcommand or group completely shadows ancestor PersistentPreRun hooks, executing only the nearest hook and skipping root initialization unless manually chained.
  2. A subcommand defining only PreRun executes the nearest ancestor PersistentPreRun first followed by its own PreRun.
  3. When a single command defines both PersistentPreRun and PreRun, PersistentPreRun executes first followed by PreRun before Run.
  4. When both error-returning (*E) and non-error variants are set on the same hook, Cobra executes the *E variant and silently ignores the non-E function.
  5. Returning an error from PersistentPreRunE or PreRunE immediately short-circuits execution, skipping Run, PostRun, and PersistentPostRun.
  6. Returning an error from RunE aborts before PostRun and PersistentPostRun execute, returning the error to Execute.
  7. Context mutations performed via cmd.SetContext in PersistentPreRun or PreRun are preserved and accessible via cmd.Context in Run and PostRun hooks.
  8. PostRun executes on the active command before the nearest PersistentPostRun, which is similarly shadowed by intermediate definitions.

Arquivos

  • NOTES.md
  • csx.json
  • go.mod
  • go.sum
  • lifecycle_test.go

Baixar o artefato de código-fonte (tar.gz)

Seeder de origem

csx-seed