Ceci est un oeuf de Pâques dans man
. Lorsque vous exécutez man
sans spécifier la page ou avec -w
, il envoie "gimme gimme gimme" à stderr, mais uniquement à 00h30:
# date +%T -s "00:30:00"
00:30:00
# man -w
gimme gimme gimme
/usr/local/share/man:/usr/share/man:/usr/man
Le code de sortie est toujours 0.
La sortie correcte doit toujours être:
# man -w
/usr/local/share/man:/usr/share/man:/usr/man
# echo $?
0
# man
What manual page do you want?
# echo $?
1
La chaîne "gimme gimme gimme" se trouve dans RHEL, OpenSUSE, Fedora, Debian et probablement davantage, de sorte qu'elle n'est pas vraiment spécifique à la distribution. Vous pouvez vérifier grep
votre man
binaire.
Ce code est responsable de la sortie ajoutée par ce 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");
J'ai contacté le support technique de RHEL à ce sujet.
La chaîne provient de la chanson bien connue de ABBA, Gimme! Donne-moi! Donne-moi! (Un homme après minuit) .
Le développeur de man-db, Colin Watson, a décidé qu'il y avait suffisamment de plaisir et que l'histoire ne serait pas oubliée et a supprimé complètement l'oeuf de Pâques .
Merci Colin!