設立記念日なのでシェル上でアスキーアートを出力するツールで遊んでみた

シェル上でアスキーアートを生成してお祝いしてみる
2023.07.07

こんにちは、AWS事業本部の平木です!

本日2023年7月7日(金)、クラスメソッド設立20周年目を迎えました!
お祝いと遊びを兼ねてシェル上でアスキーアートを生成できる、ASCIIイメージコンバータfigletで遊んでみました!

環境

  • EC2
    Amazon Linux 2

  • ASCIIイメージコンバータ
    snap パッケージ
    ascii-image-converter パッケージ

  • figlet

やってみる

EC2 へ接続をする

今回の実行環境である EC2(Amazon Linux 2)を用意し、
最近アップデートされました、EC2 Instance Connect Endpoint を使用して、プライベートなEC2へ接続します。

EC2 Instance Connect Endpoint の詳細は下記ブログを参照ください。

接続してみました。

snap をインストールする

何も考えずに snap パッケージをインストールしようとすると、

$ sudo yum install snapd
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                                                                                                                                                                  | 3.7 kB  00:00:00     
No package snapd available.
Error: Nothing to do

該当リポジトリがないため、Nothing to doとなります。

そのためリポジトリをインストールします。
下記からは root ユーザで実行します。

cd /etc/yum.repos.d/
wget https://people.canonical.com/~mvo/snapd/amazon-linux2/snapd-amzn2.repo

続いてyum.confを修正します。

vi /etc/yum.conf

一番下の行に下記を追記します。

exclude=snapd-*.el7 snap-*.el7

保存して終了したら、下記コマンドで snap をインストールします

yum install snapd

snapd を起動するのと同時に、自動起動設定を行います。

systemctl enable --now snapd.socket

ascii-image-converter をインストールする

下記コマンドで ASCII イメージコンバータをインストールします。

snap install ascii-image-converter

ASCII イメージコンバータで画像をアスキーアートに変換する

今回は、下記画像(くらにゃん)を使用します。

かわいい。

この画像を対象の EC2 へアップロードし、下記コマンドを実行します。

ascii-image-converter clanyan_02deviocafe.jpg

実行すると下記のように出力されます。

figlet をインストールする

下記コマンドで figlet をインストールします。

yum install figlet

もしNothing to doのエラーが出る場合、epel リポジトリが有効化されていない可能性があるため、 下記ブログを参照して有効化してみてください。

figlet でテキストをアスキーアートに変換する

下記コマンドの形式で利用できます。

figlet [オプション] [オプション引数] [出力するテキスト]

オプション:
-f フォントを選択。
-d フォントディレクトリを選択。
-c 出力テキストを中央揃え。
-l テキストを左揃え。
-r テキストを右揃え。
-w 出力サイズを指定。
-k 文字間にスペースを追加。

例として下記を実行すると、

figlet -f block -t "CM 20 TH"

みたいに出力されます。

設立20周年

続いて簡単なシェルスクリプトを作成します。

vi cm20y

中身は、

#!/bin/bash

ascii-image-converter ./clanyan_02deviocafe.jpg

figlet -f block -t  "CM 20 TH"

こちらを実行すると、

祝 20周年!

参考

おわりに

今回は設立20周年記念ということで、シェル上で AWS の最新アップデート機能も使いながら20周年を表現してみました!
Linux で遊ぶのは非常に楽しいですね!
みなさんもお祝いをするツールとしてぜひ Linux を採用してみてください。

20周年という記念すべき年にジョインしたのは奇跡なので、今年は楽しみながらもさらに学習に力を入れていきたいと思います!