LGTM
lgtm
コマンドでかっこよく LGTM をキメていく記事です。
3行で
-
figlet
とcoreutils
をインストール -
.zshrc
に以下のエイリアスを張る
alias lgtm="f=\$(ls /usr/local/Cellar/figlet/2.2.5/share/figlet/fonts/*.flf | shuf -n1) && basename \$f .flf && echo -n -e '\n' && figlet -f \$f -w 400 LGTM | tee >(pbcopy)"
- LGTM
という感じです。
目次
- Figlet について
- インストール
- 使い方
- フォント一覧
- フォントファイル
- coreutils について
- インストール
- 使い方
- その他整形
- ファイル名の取得
- 出力 & ペーストボードへコピー
- まとめる
- エイリアスへ登録
Figlet
アスキーアートを生成するコマンド figlet
を使います。
インストール
Homebrew
でインストールしていきましょう。
$ brew install figlet
使い方
figlet
のシンプルな使い方はこちら。
フォント名は後述のコマンドで確認できます。
$ figlet -f フォント名 文字列
フォント一覧
figlet
同梱のフォントは以下で確認できます。
$ showfigfonts
また、下記の記事でもフォントサンプル一覧が確認できます。
参考: figlet:コマンドラインでアスキーアートを作りたい
例えば rozzo
というフォントを使うと、こんな感じに LGTM が生成されます。おしゃん。
$ figlet -f rozzo LGTM
888 e88'Y88 88P'888'Y88 e e
888 d888 'Y P' 888 'Y d8b d8b
888 C8888 eeee 888 e Y8b Y8b
888 ,d Y888 888P 888 d8b Y8b Y8b
888,d88 "88 88" 888 d888b Y8b Y8b
こっちはクソデカフォント。
デフォルトだと出力幅が固定されており、大きいフォントを使う際に文字列の途中で改行されてしまうのですが、
-w
で適宜出力幅を指定すると改行されなくなります。
❯ figlet -f doh -w 400 LGTM
LLLLLLLLLLL GGGGGGGGGGGGGTTTTTTTTTTTTTTTTTTTTTTTMMMMMMMM MMMMMMMM
L:::::::::L GGG::::::::::::GT:::::::::::::::::::::TM:::::::M M:::::::M
L:::::::::L GG:::::::::::::::GT:::::::::::::::::::::TM::::::::M M::::::::M
LL:::::::LL G:::::GGGGGGGG::::GT:::::TT:::::::TT:::::TM:::::::::M M:::::::::M
L:::::L G:::::G GGGGGGTTTTTT T:::::T TTTTTTM::::::::::M M::::::::::M
L:::::L G:::::G T:::::T M:::::::::::M M:::::::::::M
L:::::L G:::::G T:::::T M:::::::M::::M M::::M:::::::M
L:::::L G:::::G GGGGGGGGGG T:::::T M::::::M M::::M M::::M M::::::M
L:::::L G:::::G G::::::::G T:::::T M::::::M M::::M::::M M::::::M
L:::::L G:::::G GGGGG::::G T:::::T M::::::M M:::::::M M::::::M
L:::::L G:::::G G::::G T:::::T M::::::M M:::::M M::::::M
L:::::L LLLLLLG:::::G G::::G T:::::T M::::::M MMMMM M::::::M
LL:::::::LLLLLLLLL:::::L G:::::GGGGGGGG::::G TT:::::::TT M::::::M M::::::M
L::::::::::::::::::::::L GG:::::::::::::::G T:::::::::T M::::::M M::::::M
L::::::::::::::::::::::L GGG::::::GGG:::G T:::::::::T M::::::M M::::::M
LLLLLLLLLLLLLLLLLLLLLLLL GGGGGG GGGG TTTTTTTTTTT MMMMMMMM MMMMMMMM
フォントファイル
フォントファイルは v2.2.5
の場合 /usr/local/Cellar/figlet/2.2.5/share/figlet/fonts/
に格納されています。確認はこちらから。
$ ls /opt/homebrew/Cellar/figlet/2.2.5/share/figlet/fonts/*.flf
coreutils について
上記でフォントファイルが取得できたのでフォントをランダムに1つ選ぶため shuf
コマンドを使います。
shuf
はみんな大好きシェルユーティリティの coreutils
に入っています。
https://formulae.brew.sh/formula/coreutils
インストール
こちらも Homebrew
でインストールしていきます。
$ brew install coreutils
使い方
shuf
はこんな感じで入力要素に対して簡単にランダムな一行を取得できます。
$ seq 1 10 | shuf -n1
7
figlet
と組み合わせるとランダムにひとつフォントが選択できます。
❯ ls /usr/local/Cellar/figlet/2.2.5/share/figlet/fonts/*.flf | shuf -n1
/usr/local/Cellar/figlet/2.2.5/share/figlet/fonts/rozzo.flf
その他整形
さて、これでランダムな LTGM が使う準備ができたのであとはフォント名を出力したりペーストボードにコピーしたりします。
ファイル名の取得
basename
を使ってパスからファイル名を抜き出します。
第2引数を指定することで拡張子を省略できます。
❯ basename /usr/local/Cellar/figlet/2.2.5/share/figlet/fonts/rozzo.flf .flf
rozzo
出力 & ペーストボードへコピー
figlet
の出力をパイプして tee
で pbcopy
へリダイレクトします。
これで出力しつつペーストボードにもコピーできました。
❯ figlet -f rozzo LGTM | tee >(pbcopy)
888 e88'Y88 88P'888'Y88 e e
888 d888 'Y P' 888 'Y d8b d8b
888 C8888 eeee 888 e Y8b Y8b
888 ,d Y888 888P 888 d8b Y8b Y8b
888,d88 "88 88" 888 d888b Y8b Y8b
まとめる
今までのコマンドをまとめます。
見やすさのため echo -n -e '\n'
で一行空白を入れてます。
f=$(ls /usr/local/Cellar/figlet/2.2.5/share/figlet/fonts/*.flf | shuf -n1) \
&& basename $f .flf \
&& echo -n -e '\n' \
&& figlet -f $f -w 400 LGTM | tee >(pbcopy)
エイリアスへ登録
以上をワンラインにまとめ、エイリアスに登録すれば完成です!
alias lgtm="f=\$(ls /usr/local/Cellar/figlet/2.2.5/share/figlet/fonts/*.flf | shuf -n1) && basename \$f .flf && echo -n -e '\n' && figlet -f \$f LGTM | tee >(pbcopy)"
LGTM
あとは lgtm
を実行すればそのままペーストできます。
レビューコメントにでもなんでもお使いください