LoginSignup
21
13

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-12-11

この記事は 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!

21
13
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
13