git configを簡単に切り替えるツールを作った

12/22/2020
#CLI
#GO

はじめに

この記事はIPFactoryアドベントカレンダー2020の23日目に記事です。

git configを切り替えるのってめんどくさい

最近GitLabの方でコミットすることが増えたのですが、GitHubの時とは別のユーザー名やメールアドレスを使っていることもあり

1git config --local user.name "<gitlabのユーザー名>"

のようなコマンドを実行してgit configの設定を変える必要がありました。

でも正直めんどくさいと思ったので、簡単に切り替えられるツールがないかをネットで軽く探したのですがあまりなさそうだったので作ってしまいました。(よくわからないツールを使うなら自分好みものを作ってしまいたいという気持ちもある)

技術選定

とりあえず個人的にこれから作るツールに求めてるものを書いてみる。

  • tomlなどの設定ファイルに複数のgit configを書いてそれを切り替えられたらいいね。

  • CLIツールの引数を全く覚えられない人間なのでなるべく対話形式のツールがいい。

  • Rust🦀 かGo🐭 で作りたい(好きだから)

これらからGoにいい感じのライブラリがあったのでGoで実装することにした。

デモ

所々表示が崩れていますがこれは録画のせいです(いつもこんな環境でやっているわけではない)。

asciicast

やっていることしては ~/.config/git-config-switch.toml の内容を読み取り、それを元に設定を切り替えています。

ソースコードはこちらになります。

所感

いきなり万能ツールを作ろうとしない

今回のツールはコードとしては100行前後で簡単なものになりました。現状だとgit configのuser情報だけしか切り替えることができません。
でも現状でも個人的には満足しているので、最初から機能モリモリのものを作るのではなく、最低限の構成の物を作った方が幸せかもなと感じました。
よほどやる気があるなら別ですが。

Go楽しい

初めて reflect というパッケージを触ったのですがかなり面白かった。Go言語reflectパッケージ詳解を少し買ってみたいなと思いました。
でもRustも書きたかった🦀 。

最後に

毎度毎度ソースコードの解説もなくただただ作った物を紹介しているだけで申し訳ないのですが、最後までご覧いただきありがとうございました!