この記事は ConoHa Advent Calendar 2017の12日目の記事です。
美雲このはの超☆お悩み相談室 (前) < | > (次)ConoHaで爆速プロキシサーバーを試す(Ubuntu 16.04 + squid
こんにちは、ひろのぶです。
昔からUnix系OSにある有名なジョークコマンドでの一つに cowsay があります。ウシなどのアスキーアートと一緒にテキストを表示してくれるプログラムで、技術勉強会のデモなどでもよく使われるコマンドです。
# fortune | cowsay
_______________________________________
/ All the really good ideas I ever had \
| came to me while I was milking a cow. |
| |
\ -- Grant Wood /
---------------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
cowsayにはポニーが表示されるものやポケモンが表示されるものなど、色々と亜種があります。というわけで今回ConoHa Advent Calendarと言うことで、conohasayコマンドを作ってみました。
インストール
LinuxおよびmacOSに対応しています。
README.mdをご覧ください
Dockerがインストールされているなら、下記コマンドですぐに試すことができます。
docker run -i hironobu/conohasay -h
使い方
コマンドの引数、もしくは標準入力から渡された内容をキャラクターが喋ってくれます。単純な使い方は下記です。
conohasay "Hi, I'm ConoHa Mikumo!"
実行結果
いい感じですね。ただ、ちょっと荒いかな...?
もしターミナルのサイズが十分にある場合は、-sオプションでサイズを変更できます。指定できるのはs, m, lのどれかです。デフォルトでは一番小さいサイズ(sサイズ)で表示されます。
conohasay -s m -c conoha "Hi, I'm ConoHa Mikumo!"
このは先生以外のキャラも表示できます。-cオプションでキャラを変更してみましょう。
完全なオプションはREADME.mdをご覧ください
実践的な使い方?
cowsayにはfortuneコマンドを渡すのが定番ですが、hostnameやwやuptimeあたりをパイプで渡すのもよくやります。下記は w コマンドの出力をconohasayに渡した例です。
w -s | conohasay -s m
また、定番のカスタマイズとして/etc/motdをいじってログインメッセージを変更するというのもあります。Qiitaにも多くの記事があります。
ConoHaの場合、modのカスタマイズにはスタートアップスクリプトを使うと良いでしょう。以下はCentOS向けのシンプルなスクリプトです。
#cloud-config
runcmd:
- curl -sL https://github.com/hironobu-s/conohasay/releases/download/current/conohasay-linux.amd64.gz | zcat > /usr/bin/conohasay
- chmod +x /usr/bin/conohasay
- conohasay このホストは $(hostname) だよ! > /etc/motd
こうするとVPSにログインすると、キャラクターがホスト名を喋ってくれます。
実装とか
内部的にcowsayを呼び出すようにすればすぐ作れるかなーと思ってたのですが、「吹き出しをキャラの右に出したいなー」とか考えてたら結局ゼロから作ることになりました。
あと余談ですが、conohasayはオリジナルのcowsayをリスペクトしているため、キャラクターはCowという構造体で扱われています。内部的にはみんなウシ扱いなんですね (pokemonsayもそうなってたりします)
おわりに
それではconohasayで楽しいターミナルライフを!
もし気に入ったらGitHubでスターください
enjoy!