Goで自分のテンプレコードベースを使いまわせるツールを作ってみた
Goを書いていると、テンプレ化したディレクトリ構成やボイラープレートがちらほら出てきます
新規でプロジェクトを始める場合やサクッと何かを試したい時、それらをいちいち作成したり探してもってきたり、
パッケージ名の更新をしたりするのが面倒でした
なので自分のGoプロジェクトをテンプレとしてを登録しておくことができ、
登録した中から好きなテンプレを選んで、パッケージ名を更新した新規プロジェクトとして生成できるツールを作りました
使い方
インストール方法
go install github.com/TadayoshiOtsuka/go-tady@latest
設定ファイルの初期化
go-tady init
で設定ファイルである.go-tady.toml
を$HOME
配下へ作成します
CLIからgihubのuser名を訪ねられますが、ここで設定した値が
新規プロジェクトを作成する際のgo mod
のパッケージ名のユーザー名部分になります
例) github.com/<gihub user名>/myapp
テンプレにしたいコードベースをプリセットに登録
テンプレとして使いまわしたいコードベースをプリセットに登録します
テンプレにしたいコードベースのrootへ移動し、register
コマンドを実行します
go-tady register <好きな名前をつける>
登録済みのテンプレ一覧を見るにはlist
コマンドを実行します
go-tady list
> 1 preset found
> awesome_tmpl at: /Users/home/hogehoge/myapp
プリセットから新規プロジェクトを作成
プリセットのテンプレから新規プロジェクトを作成するにはcreate
コマンドを実行します
go-tady create <新規プロジェクトの名前>
実際に実行するとこんな感じで好きなプリセットを選択して作成することができます
※v0.1.4時点では、テンプレの元プロジェクトのrootにgo.mod
が存在している必要があります
番外編
go-tady create
コマンドで、
preset
ではなくdefault
を選択すると、
にあるデフォルトのプリセットを利用することもできます(今は一つしかないですが…)
当初はこの機能一本で開発してたんですが、
各々が好きなテンプレを登録できたほうがいいよねということでやめました
おわりに
今回開発にはCobraを利用しました
CLI開発が初めての自分でもサクッと動くものが作れたのでおすすめです
基本的に自分で使うために作成したのでまだまだ色々粗いところばっかりです徐々に改善していきます
もちろんPR大歓迎です🎉
Discussion