自動テストの一部は00:30に実行すると失敗しますが、残りの日は正常に動作することに気付きました。それらはstderrのメッセージ「gimme gimme gimme」で失敗しますが、これは予期されていませんでした。なぜこの出力が得られるのですか?
自動テストの一部は00:30に実行すると失敗しますが、残りの日は正常に動作することに気付きました。それらはstderrのメッセージ「gimme gimme gimme」で失敗しますが、これは予期されていませんでした。なぜこの出力が得られるのですか?
回答:
親愛なる@colmmacuait、私はあなたが0001時間で「男」を入力した場合、それは「ギミーギミーギミー」を印刷しなければならないことだと思います。#abba @ marnanel- 2011年11月3日
ええ、それは私のせいでした、私はそれを提案しました。ごめんなさい。
ほぼすべてのストーリーがコミットされています。男のメンテナが、私の良き友人であり、6年前のある日、私は冗談めかして、あなたが真夜中の後に男を呼び出す場合、それは「印刷する必要があることを彼に言ったギミーギミーギミーため」と呼ばれるアバの曲の、」をギミギミーギミー男真夜中以降:
まあ、彼は実際にそれ を入れました。数人の人がそれを発見して面白がっており、今日までほとんど忘れていました。
私は明らかにColについて話すことはできませんが、これが問題を引き起こすとは思っていませんでした。私はそのうちの1つが最終的に現れたことに驚かないでくださいが、6年かかりました。
(コミットメッセージはトーマスと呼ばれます。トーマスは、オンラインではあまり使用していませんが、私の正式な名前です。)
この問題は、コミットで固定されていない84bde8:実行中の男はman -w
、もはやこのイースターエッグをトリガします。
これはのイースターエッグですman
。man
ページを指定せずに、またはを使用して実行すると-w
、「gimme gimme gimme」がstderrに出力されますが、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
終了コードは常に0です。
正しい出力は常に次のようになります。
# man -w
/usr/local/share/man:/usr/share/man:/usr/man
# echo $?
0
# man
What manual page do you want?
# echo $?
1
文字列「gimme gimme gimme」は、RHEL、OpenSUSE、Fedora、Debianなどで見つかる可能性があるため、実際にはディストリビューション固有ではありません。バイナリを確認できgrep
ますman
。
このコードは、このコミットによって追加された出力を担当します。
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");
この問題についてRHELサポートに連絡しました。
ストリングは、有名なABBAソングGimmeから来ています!ギミ!ギミ!(ミッドナイトアフターミッドナイト)。
man-dbの開発者であるColin Watsonは、十分な楽しみがあり、ストーリーが忘れられないことを決定し、イースターエッグを完全に削除しました。
コリンありがとう!
faketime
利用可能なプラットフォームでは、システム時間を変更しなくてもこれを試すことができます:faketime '00:30:00' man
(Debian 8)。
man
、ではないman -w
:git.savannah.nongnu.org/cgit/man-db.git/commit/src/...とMarnanelのconfessio ^ Wanswerにコリンさんのコメント。
man -w
は、現在のマニュアルページの検索パスを出力します。これは、自動化するものにマニュアルページのインストールやテストが含まれる場合など、他の何かの構成要素としてかなり合理的に使用できるものです。
熟考した後、このイースターエッグを削除しました。今後のman-db 2.8.0でなくなる予定です。
私はそれが何人かの人々を笑顔にさせてくれてうれしいです、結局それはそれの全体的な目的であり、今日の私のTwitter通知などはほとんどの人々がそれが迷惑よりも面白いと思ったことを示唆しています それでも、一部の人々はそれを迷惑だと感じました。おそらく、この質問によって既に予想外に得られたものよりも大幅に良い露出を得ることはないでしょう。寝る時間です。
man -abba
真夜中の後に発射されるとイースターエッグが与えられます。