Percebemos que alguns de nossos testes automáticos falham quando são executados às 00:30, mas funcionam bem o resto do dia. Eles falham com a mensagem "gimme gimme gimme" no stderr, o que não era esperado. Por que estamos obtendo essa saída?
Percebemos que alguns de nossos testes automáticos falham quando são executados às 00:30, mas funcionam bem o resto do dia. Eles falham com a mensagem "gimme gimme gimme" no stderr, o que não era esperado. Por que estamos obtendo essa saída?
Respostas:
Caro @colmmacuait , acho que se você digitar "man" às 0001 horas, deverá imprimir "gimme gimme gimme". #abba @marnanel - 3 de novembro de 2011
er, isso foi culpa minha, eu sugeri. Desculpa.
Praticamente toda a história está no commit. O mantenedor do homem é um bom amigo meu, e um dia, seis anos atrás, eu disse a ele brincando que se você invocar o homem depois da meia-noite, ele deve imprimir " me dê, me dê, me dê ", por causa da música do Abba chamada " Me dê, me dê um homem depois da meia-noite ":
Bem, ele chegou a colocá-lo em . Algumas pessoas se divertiram ao descobri-lo, e quase o esquecemos até hoje.
Não posso falar por Col , obviamente, mas não esperava que isso causasse problemas: que tipo de teste seria interrompido ao analisar a saída de man sem nenhuma página especificada? Suponho que não deveria me surpreender com o fato de alguém aparecer, mas levou seis anos.
(A mensagem de confirmação me chama Thomas, que é meu primeiro nome legal, embora eu não a use muito online.)
Esse problema foi corrigido com o commit 84bde8 : executar o man with man -w
não acionará mais esse ovo de páscoa.
Este é um ovo de páscoa man
. Quando você executa man
sem especificar a página ou com -w
, ele gera "gimme gimme gimme" para stderr, mas apenas às 00:30:
# date +%T -s "00:30:00"
00:30:00
# man -w
gimme gimme gimme
/usr/local/share/man:/usr/share/man:/usr/man
O código de saída é sempre 0.
A saída correta deve sempre ser:
# man -w
/usr/local/share/man:/usr/share/man:/usr/man
# echo $?
0
# man
What manual page do you want?
# echo $?
1
A string "gimme gimme gimme" pode ser encontrada no RHEL, OpenSUSE, Fedora, Debian e provavelmente mais, por isso não é realmente específico da distribuição. Você pode verificar o grep
seu man
binário.
Este código é responsável pela saída , adicionada por este commit :
src/man.c-1167- if (first_arg == argc) {
src/man.c-1168- /*
http://twitter.com/#!/marnanel/status/132280557190119424 */
src/man.c-1169- time_t now = time (NULL);
src/man.c-1170- struct tm *localnow = localtime (&now);
src/man.c-1171- if (localnow &&
src/man.c-1172- localnow->tm_hour == 0 && localnow->tm_min == 30)
src/man.c:1173: fprintf (stderr, "gimme gimme gimme\n");
Entrei em contato com o suporte do RHEL sobre esse problema.
A string vem da conhecida canção do ABBA, Gimme! Gimme! Gimme! (Um homem depois da meia-noite) .
O desenvolvedor do man-db, Colin Watson, decidiu que havia diversão suficiente e a história não será esquecida e removeu completamente o ovo da páscoa .
Obrigado Colin!
faketime
disponíveis, você pode tentar isso sem precisar alterar a hora do sistema: faketime '00:30:00' man
(Debian 8).
man
, não man -w
: git.savannah.nongnu.org/cgit/man-db.git/commit/src/… e o comentário de Colin no confessio ^ Wanswer de Marnanel .
man -w
imprime o caminho de pesquisa da página manual atual, que é o tipo de coisa que você pode razoavelmente usar como um componente básico para outra coisa, por exemplo, se a coisa que você automatizou envolvia a instalação ou teste de páginas de manual.
Após algumas reflexões, retirei este ovo de Páscoa . Ele será lançado no próximo man-db 2.8.0.
Fico feliz que isso tenha feito algumas pessoas sorrirem, o que afinal era o objetivo disso, e minhas notificações no Twitter e assim por diante hoje sugerem que a maioria das pessoas achou mais divertido do que irritante. Ainda assim, algumas pessoas acharam isso irritante, e seis anos parecem uma boa corrida para esse tipo de coisa; provavelmente não terá uma exposição significativamente melhor do que já inesperadamente tem por meio dessa pergunta. Hora de colocá-lo na cama.
man -abba
e quando disparada depois da meia-noite daria o ovo da páscoa.