🗻

自作コマンドを作ってHomebrewで公開してみた話

に公開

自作コマンドを作ってHomebrewで公開してみた話

自作コマンドを作ってHomebrewで公開したので、作り方をまとめてみました。

きっかけ

私は普段、仕事のPCを開いたら最初に「君が代」を聴いています。
いつもは Spotify を開き、「海上自衛隊 東京音楽隊」による君が代を再生しています
https://open.spotify.com/intl-ja/track/4AkevcHTZl1443sJP52RdV?si=ec9cd4225b244553

ただ、Spotifyに依存する形だとネット接続やアプリの状態に左右されるし何よりステップが多いため
CLIからサッと実行して、確実に君が代が流れる環境を作れたら便利だな と思うようになりました。

そこで、自作のBashスクリプトでMP3ファイルを再生し、縦書きで歌詞も表示できるCLIツール kimigayo を作りました。

やったこと

リポジトリの作成

スクリプトの作成

  • bin/kimigayo に処理内容を記載
    • 今スクリプトはMP3ファイルを流すためMP3ファイルが必要ですが、自作コマンドに実質的に必要なファイルは bin/kimigayo のみです
  • その他、 README.md などを追加

タグをつけてリリース

git tag v0.1.0
git push origin v0.1.0

hashの取得

❯ curl -L -o kimigayo.tar.gz https://github.com/politive/kimigayo/archive/refs/tags/v0.1.0.tar.gz

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 1348k    0 1348k    0     0  1652k      0 --:--:-- --:--:-- --:--:-- 1652k

❯ shasum -a 256 kimigayo.tar.gz

55b201c39596c0ff34738202f2acff21b0f2a8938f4b6eee7e449852bc716f74  kimigayo.tar.gz

ここで得られたハッシュを控えておきます。

Homebrew公開用リポジトリの作成

brew tap した時に Homebrewに見つけてもらうためのリポジトリです。

処理を追加

Formula/kimigayo.rb というファイルを作って以下のように編集

class Kimigayo < Formula
  desc "Play Japan’s national anthem in your terminal"

  # スクリプトのリポジトリ
  homepage "https://github.com/politive/kimigayo"

  # GitHub がタグごとに生成するgzファイルを指定
  url "https://github.com/politive/kimigayo/archive/refs/tags/v0.1.0.tar.gz" 

  # 先ほど得られたハッシュ
  sha256 "55b201c39596c0ff34738202f2acff21b0f2a8938f4b6eee7e449852bc716f74"

  license "MIT"

  # 依存ライブラリはここに記載しておく
  depends_on "mpg123"

  def install
    bin.install "bin/kimigayo"
    pkgshare.install "mp3"
  end

  test do
    system "true"
  end
end

内容をpushしておく

git add .
git comment -m 'お好きなコミットメッセージ'
git push origin main

動作確認

# HomebrewがGitHubからpolitive/kimigayoを探してくれる
brew tap politive/kimigayo

# 依存ライブラリもここでインストールされる
brew install kimigayo

動作確認

kimigayo

以下のような歌詞とともに、君が代の音源が流れたらOK。

まだできていないこと

  • Windows, Linux対応
  • 国旗が絵文字であることや、等幅フォントでないターミナルでの検証
    • 歌詞の囲いの表示が少しズレる可能性がある

終わりに

他にも自動化したいことがいくつかあるので、それらも時間を見つけてコマンドにしたいなと思っています。

Politive Tech Blog

Discussion