cowsayで現場猫にヨシ!されたい件


業務中でも現場猫にヨシ!してほしかったので、cowsay を使ってなんとかしてみました。

Intoroduction

cowsayは言うまでもなくイカしたサーバに相応しい魅惑のツールです。殺伐とした私たちの心に一服の清涼を与えてくれます。
一方、現場猫も何とも可愛らしく、ヒューマンエラーの怖さを私たちに訴え続けています。

そして、そうとなれば早速

_人人人人人人_
> 2身合体 <
 ̄Y^Y^Y^Y^Y^Y^ ̄

やりたいこと

  • cowsay の cow ファイルに現場猫を追加

作業履歴

  1. もちろんcowsay は事前にインストールしておきます。CentOSやDebianではパッケージ化されているようですので、楽ちんに用意できますね。本当にありがとうございます。
  2. cow ファイルの準備

    • 現場猫のAAは、AA弐典さんで公開されてますので有難くコピペさせて頂きます。
    • cow ファイルはたぶん、/usr/share/cowsay/cows あたりにあると思います。それぞれの環境にあわせて読み替えてください。
    • 新しく、cow ファイル(yoshi.cow)を以下のように書いてみます。cow ファイルは perl でいい感じに $the_cow 変数にAAを放り込む感じです。
    yoshi.cow
    $the_cow = <<EOC;
      $thoughts
       $thoughts
        $thoughts
        ∧  /ヽ
       // ̄ ̄\|
       ∠_n__〉
      / ①八① ヽ _
      工ニf(_人_)エ二|′)ヽ
      \ヽヽノノ ノ ヘ |
    ⊂⌒)_>―――′イ (_)
     `ー、_ノ/ ̄ヽ |
       _||  | |
      (  人_ノ Λ
       \ス ̄ ̄レ-Λ \
      ( ̄ ) / / \ノ\
        ̄ ̄ ( ヽ  \_)
          \ノ
    EOC
    
  3. cowsay 側の修正
    おおっと、このままcowsayを実行しても、AAは文字化けしてしまう。cowsay 側でAAを UTF-8 に変換させてから出力させてしまいましょう。Debian なら /usr/games/cowsay , CentOS なら /usr/bin/cowsay だったと思うのでおもむろにスクリプトを改悪してしまいましょう。
    なぁに、失敗しても入れ直せばいいさ。

  • 先頭付近でライブラリを読み込むところがあるので、Encode モジュールを追加してしまいましょう。use hogehoge が連続してるところの最後にこっそり入れます。
cowsay
(snip)
use Getopt::Std;
use Cwd;
use Encode;     # これを追加
(snip)
  • $the_cow 変数を出力してるところがあるので、コメントしてしれっと decode しておきます。
cowsay
(snip)
&construct_balloon;
&construct_face;
&get_cow;
print @balloon_lines;
#print $the_cow;                   # これをコメントアウト
print decode('UTF-8',$the_cow);    # しれっとdecode

完成!

$ cowsay -f yoshi "ヨシ!してほしいこと"

ansible でヨシ!して欲しい時は、ansible.cfg の cow_selection を yoshi にすると更に幸せが待ってるよ。
playbook が失敗してもヨシ!なので原作?に忠実です!

ジョジョが好きな方はジョースター卿にするのもよいですね。みなさんの心の潤いになれば幸いです。

出典