dotfilesを管理するツールを作った
増税前にPCを買い換えておこうと思い、高校の時に買ったMacBook Air 13-inch Early 2015から2019 MacBook Pro 2019 13-inch 4thunderbolt3 portsにしました。
メモリとかSSDとかも追加して、この度念願のUSキーボードにしました。
初バタフライキーボードです、このペチペチ感が楽しいです。
さて、パソコンを買い換えたということは環境を再構築しなければなりません、大概のアプリケーションはhomebrewで管理しているのでインストール用のスクリプトを書いておけばいいですね。
あとは設定周りのファイルを移行したいです。正直dotfilesを管理するツールはいくらでもあります。前はhomeshickを使ってましたがこれはディレクトリが追加できないなど、ちょっと不便だなぁと思うところが多かったので違うツールを探していたんですがGolangを使ってみたかったという適当な理由で自作してしまいました。
適当にロゴっぽいものをつけてREADMEを適当な英語で作っておけばそれっぽく見えますね。内容はただのlnコマンドなどのラッパーです。
今回はGolang向けのコマンドラインアプリケーションライブラリの urfave/cliを使いました。
このライブラリではサブコマンドやパラメータのほか、yaml, toml, jsonなどの設定ファイルを読み込んだり環境変数を読んだりとcliアプリケーションを作る上ではこのライブラリで完結すると思います。あと、ドキュメント読まなくても書き始められるぐらいわかりやすい構造をしています。感動!!
今回はとりあえずmacOS向けのバイナリしか作ってませんが、CIでそれぞれのOS向けのバイナリをビルドして公開してみようかなと考えています。
また、今回はhomebrewのオレオレformulaも用意しているのでdotzのインストール自体もセットアップスクリプト内に収めることができますね、最高です。