GoでCLI兼ライブラリを作る
GoでCLI兼ライブラリを作る方法について書いてゆく。
Goのエントリポイント
Goのエントリポイントはmain.go
のmain関数になっている。
つまり、このファイルと関数が無い場合は ライブラリとして扱われるという事になる。
GoでCLI兼ライブラリを作る方法
まず以下のようなディレクトリ構造を作成する。以下はChuno
の例。
.
├── chuno.go
├── cmd
│ └── chuno
│ └── main.go <- cliツールのエントリポイント
├── css.go
├── go.mod
├── go.sum
├── README.ja.md
├── README.md
├── render.go
└── watch.go
ライブラリのリポジトリに/cmd/ライブラリ名/main.go
というファイルを作成し、そこにcliツールのプログラムを書いてゆく。
ただしmain.go
でライブラリ自身(上の例の場合はChuno)を読み込む場合はgithub.com
から始まる形式で読み込む必要がある。
以下はChuno
の場合(関係ない部分は省いている)