⛄️
Go の初期設定を一発でできる cli ツールを作った
初めに
この記事はCyberAgent 22 新卒 Advent Calendar 2021の23日目の記事です
ネタがなく、困っていた時に Go の初期設定を一発でできる cli があれば自分も使うかなと思ったので作成しました。
思いついた時は絶対既にあると思ったんですが、探してみた感じあるけど継続的にメンテされているのが一つもない?みたいな感じでした。
インストール
Go
$ go install github.com/mmmommm/goinit@latest
Mac
$ brew install mmmommm/tap/goinit
Windows, Linux etc...
こちらからバイナリファイルをダウンロードしてください。
使い方
$ goinit ${directory_name} -m ${module_name}
(e.g
$ goinit example -m github.com/mmmommm/example
goinit
を実行するとコマンド引数に応じてディレクトリが作成され、その中に
- main.go
- README.md
- LICENSE
- .github/workflows/lint.yml
- .github/workflows/test.yml
- .gitignore
- .golangci.yml
が作成されます。
module オプション
がある場合は、渡されている値を元に go mod init 引数
が実行され、go.mod
ファイルが作成されます。
Dockerfile
も作成できたら便利かなと思っているのでそのうち追加しようと考えています。
Makefile
に関してはあったらいいなとは思うのですが、使い方もどのようなアプリを作成するかによって変わってくる上に全員が使うようなコマンド(gofmtなど)は、Makefileに書くほどでもないなと思ったので入れていません。
最後に
cobra を使って作ったのでつまるところはあったんですが比較的早く作れました、これからもバージョン更新とかはするつもりなので使ってもらえると嬉しいです。
作成されるファイルの中身でもっと良い書き方や設定、追加した方がいいものなどあればコメントや issue、PR 頂けると助かります。
リリースに関してはbudougumi0617さんの記事を参考にさせていただきました、ありがとうございます。
Discussion