最近、Goでの開発をすることになったので色々と勉強していて、
どうせならコマンドラインツールも作れるようになろうと思ったので、簡単なCLIを作成してGithubに公開してみるというのをやってみました。
備忘録的なものですが、ぜひ最後までご覧ください。
まずはブランクリポジトリを作成する
特に方法はなんでもいいのですが、Githubに公開するので今回はgh
コマンドを使って空のリポジトリを作成しようと思うので、まずは下記のコマンドを実行します。
gh repo create
空のリポジトリを作成したら、
cd <ディレクトリ名>
でディレクトリを移動しgoプロジェクトの初期化を行います、
go mod init <モジュール名>
ディレクトリ内にgo.modファイルが生成されたのを確認し、IDEでディレクトリを開きます。
私は、VSCodeを普段から使用してますが、特になんでもいいです。
実行するとHello, Golang!と出力されるコマンドの実装
先ほど作成した、ディレクトリ内にmain.goを作成
下記を実装します。
package main
import "fmt"
func main() {
fmt.Println("Hello, Golang!")
}
試しに、ターミナルから実行してみましょう。
カレントディレクトリにいるのを確認して下記コマンドを実行しましょう
go run .
# Hello, Golang! と出力されればOK
実装が問題なければ、リモートリポジトリにプッシュしましょう。
git branch
# mainに直接プッシュします
git add .
git commit -m "コミットメッセージ"
git push -u origin main
ついでにバージョニングのためにタグもつけておきます
git tag v1.0.0
git push --tags
実際にgo install でインストールして実行してみる
リモートリポジトリ上にプッシュしたら実際にインストールして使用してみましょう。
ディレクトリはそのままで大丈夫なので、ターミナルからインストールして実行します。
# githubからインストール
go install github.com/U5K492/hellogo@latest
hellogo
# Hello, Golang!と出力されればOK
無事出力されたでしょうか?
コマンドラインツールの作成の流れがつかめればあとは実装の中身をそれぞれ行えばおおよそは問題ないかと思います。
最後にgo install
でインストールしたコマンドが不要になった場合下記のコマンドで削除できます
rm `go env GOPATH`/bin/hellogo
最後に
ざっくりとGoでのコマンドラインツールの作成の流れは掴めたでしょうか?
おおよそ実装の中身以外は今回の流れで問題ないと思いますので、ぜひ便利なツールを開発して公開してみてください。
最後までご覧いただきありがとうございました。
今後も日々の学びなどを発信していきますので、今後ともよろしくお願いいたします!
コメント