🔨

Goで自分のテンプレコードベースを使いまわせるツールを作ってみた

2022/08/23に公開

Goを書いていると、テンプレ化したディレクトリ構成やボイラープレートがちらほら出てきます
新規でプロジェクトを始める場合やサクッと何かを試したい時、それらをいちいち作成したり探してもってきたり、
パッケージ名の更新をしたりするのが面倒でした
なので自分のGoプロジェクトをテンプレとしてを登録しておくことができ、
登録した中から好きなテンプレを選んで、パッケージ名を更新した新規プロジェクトとして生成できるツールを作りました

https://github.com/TadayoshiOtsuka/go-tady

使い方

インストール方法

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を選択すると、
https://github.com/TadayoshiOtsuka/go-tady/tree/master/assets/presets
にあるデフォルトのプリセットを利用することもできます(今は一つしかないですが…)
当初はこの機能一本で開発してたんですが、
各々が好きなテンプレを登録できたほうがいいよねということでやめました

おわりに

今回開発にはCobraを利用しました
CLI開発が初めての自分でもサクッと動くものが作れたのでおすすめです
基本的に自分で使うために作成したのでまだまだ色々粗いところばっかりです徐々に改善していきます
もちろんPR大歓迎です🎉

Discussion