Journal Que fait `man` passé minuit ?

Posté par  . Licence CC By‑SA.
Étiquettes :
54
29
nov.
2017

Au détour de mes pérégrinations sur la toile, je suis tombé sur un fil au contenu amusant et étonnant sur le stack exchange Unix. Mais que fait la commande man après minuit ? Se transforme-t-elle en Gremlins si on lui donne à manger ? Non, elle se met à chanter ! mais à une heure bien précise. :-)

Cet easter egg est resté confidentiel pendant 6 ans. Il fut introduit par ce commit et trouve son origine dans une blague faite sur twiiter par un des amis de l'auteur de man. L'auteur vient de le retirer du code et il disparaîtra à partir de la version 2.8.0 à venir de man-db. Pour ceux qui veulent le tester et sans attendre l'heure fatidique de minuit et demi, le plus simple et de taper cette commande en root (pour pouvoir changer l'heure locale de la machine) :

$ date +%T -s "00:30:00"; man
00:30:00
gimme gimme gimme

pour les fans de ABBA, vous aurez reconnu la référence au fameux titre Gimme, gimme, gimme a man after midnight. :-D

La prochaine découverte sera peut être que Satoshi Nakomoto a placé une référence à Money, Money, Money dans le code des clients bitcoin.

  • # 00:01 ?

    Posté par  . Évalué à 7.

    D'après le commit que tu donnes, ça ne fonctionne qu'à 00:01 donc sur une fenêtre d'une minute.
    Ton exemple ne devrait donc pas fonctionner.

    • [^] # Re: 00:01 ?

      Posté par  . Évalué à 9.

      Exact, il a du le modifier entre temps. Dans la version que j'ai c'est bien à minuit et demi. Voir le commit qui le retire.

      Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.

    • [^] # Re: 00:01 ?

      Posté par  . Évalué à 3.

      Même problème qu'avec les Gremlins, on est toujours après minuit…

  • # sans changer l'heure

    Posté par  . Évalué à 10.

    ni mettre la pagaille, et sans root


    $ sudo apt-get install faketime
    ...
    $ faketime '00:30:00' man -w
    gimme gimme gimme

    • [^] # Re: sans changer l'heure

      Posté par  . Évalué à 10.

      Il faut quand même être root pour installer faketime ;)

      • [^] # Re: sans changer l'heure

        Posté par  . Évalué à 6.

        oui et non … j'ai indiqué "sudo" pour simplifier, mais on peut très bien récupérer le source et le compiler (ou éclater le paquet binaire) chez soi puis utiliser LD_PRELOAD pour insérer la libfaketime en tête. Tout est documenté dans le LISEZMOI de faketime :-)

      • [^] # Re: sans changer l'heure

        Posté par  . Évalué à 3.

        Sous nixos, sans être root, et sans (techniquement) installer faketime ;) :
        $ nix-shell -p libfaketime --command "faketime '00:30:00' man"
        gimme gimme gimme
        Quelle page de manuel voulez-vous ?

      • [^] # Re: sans changer l'heure

        Posté par  . Évalué à 3. Dernière modification le 30 novembre 2017 à 19:31.

        D'autant que si on n'a pas déjà installé faketime, c'est plus long. Je ne sais pas comment fonctionne tous les systèmes, mais sur le mien ça ne fout pas le bordel. Si je n'enchaîne pas les deux commandes via le ;, mais l'une après l'autre, l'heure est déjà revenue à la normale.

        $ date +%T -s "00:30:00"
        00:30:00
        $ man; date +%T
        Quelle page de manuel voulez-vous ?
        19:30:29
        

        Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.

  • # Casse ton workflow !

    Posté par  . Évalué à 10.

    Easter egg découvert lors de tests automatisés appelant man -v. Comme le fait remarquer un internaute dans la discussion sur Stack Exchange, il faut espérer qu'en enlevant cet easter egg, ça ne cassera pas le workflow de quelqu'un d'autre.

    Cette signature est publiée sous licence WTFPL

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.