Edited at
ConoHaDay 12

conohasayで楽しいターミナル生活を

More than 1 year has passed since last update.

この記事は 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コマンドを作ってみました。

screen2.png


インストール

LinuxおよびmacOSに対応しています。

README.mdをご覧ください

Dockerがインストールされているなら、下記コマンドですぐに試すことができます。

docker run -i hironobu/conohasay -h


使い方

コマンドの引数、もしくは標準入力から渡された内容をキャラクターが喋ってくれます。単純な使い方は下記です。

conohasay  "Hi, I'm ConoHa Mikumo!"

実行結果

screen1.png

いい感じですね。ただ、ちょっと荒いかな...?

もしターミナルのサイズが十分にある場合は、-sオプションでサイズを変更できます。指定できるのはs, m, lのどれかです。デフォルトでは一番小さいサイズ(sサイズ)で表示されます。

conohasay -s m -c conoha "Hi, I'm ConoHa Mikumo!"

screen4.png

このは先生以外のキャラも表示できます。-cオプションでキャラを変更してみましょう。

screen3.png

完全なオプションはREADME.mdをご覧ください


実践的な使い方?

cowsayにはfortuneコマンドを渡すのが定番ですが、hostnamewuptimeあたりをパイプで渡すのもよくやります。下記は w コマンドの出力をconohasayに渡した例です。

w -s | conohasay -s m 

screen5.png

また、定番のカスタマイズとして/etc/motdをいじってログインメッセージを変更するというのもあります。Qiitaにも多くの記事があります。

「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にログインすると、キャラクターがホスト名を喋ってくれます。

login.png


実装とか

内部的にcowsayを呼び出すようにすればすぐ作れるかなーと思ってたのですが、「吹き出しをキャラの右に出したいなー」とか考えてたら結局ゼロから作ることになりました。

あと余談ですが、conohasayはオリジナルのcowsayをリスペクトしているため、キャラクターはCowという構造体で扱われています。内部的にはみんなウシ扱いなんですね:cow2::cow2::cow2::cow2::cow2: (pokemonsayもそうなってたりします)


おわりに

それではconohasayで楽しいターミナルライフを!

もし気に入ったらGitHubでスターください:star:

hironobu-s/conohasay

enjoy!