はじめに
- Elixir楽しんでいますか
- @piacerex さんの小粒でピリリと辛いユーティリティ群piacerex/smallexの更新をお手伝いしています
- そのなかで
mix format
していきましょうとみんなへ呼びかけたところ、自動化できるよという話を @koyo-miyamura さんから聞きました - そしてqgadrian/elixir_git_hooksというHexが便利だよということを @zacky1972 先生に教わりました
- zeam-vm/pelemay_fpに導入されています
- Qiitaに導入記事がなければ書くつもりでおりました
- $\huge{すでにありました}$
- じゃあ書かなくても良いわけですが、まあちょっと調べたことがあるのでそれをそのまま書いておきます
- この記事は、2021/3/15に開催予定のautoracex #Nの成果といたします
qgadrian/elixir_git_hooksを紹介した先輩記事
- kokura.exの@im_miolabさん作
- 「GitHooksをElixir開発環境へ導入して、コミットやプッシュの際にコード検査やテストが走るようにする」
- qgadrian/elixir_git_hooksのREADMEと@im_miolabさんの記事を見ていればほぼほぼ事足ります
- ここから先はをご覧になっている前提で書きます
私の補足
- そもそもGit のカスタマイズ - Git フックというものがあります
- 私は今日知りました
-
.git/hooks
配下にあるスクリプトがアレしてナニしてくれるわけです - 最初は
.sample
というファイルが置いてあります - 詳細はリンク先をご参照ください
-
config/config.exs
に:git_hooks
の設定を書いておいて、mix git_hooks.install
をすると以下のファイルができます.git/hooks/pre-commit
.git/hooks/pre-push
- 中身は以下のようになっています
.git/hooks/pre-commit
#!/bin/sh
mix git_hooks.run pre_commit "$@"
[ $? -ne 0 ] && exit 1
exit 0
fi
.git/hooks/pre-push
#!/bin/sh
mix git_hooks.run pre_push "$@"
[ $? -ne 0 ] && exit 1
exit 0
fi
- これらが
git commit
やgit push
コマンドの際にフックされてmixタスクが実行されるという仕組みです
Wrapping Up
-
mix format
とかちょっとしたことではあるけれども必ずやることにするならこういう仕組みを導入して自動化するのはいいですね - Enjoy Elixir
(最後の最後に)Elixirってなによ? という方へ
- 2020/12/26時点くらいのスクリーンショット
- Elixirについてもっと知りたい方は下記の本をオススメします
-
elixir.jp Slackの
#autoracex
というところに私は入り浸っておりますのでお気軽にお声がけください