⌨️
go/cobraでコマンド作りたいんだけど、最近の記事だと出来ない件
ググってもできねぇ
go/cobraで以前コマンドつくったんですが、どうやったっけ?って思ってググって記事をいくつも読んで試したんですが、
ま、いずれこの記事もそうなるかもしれないですが、一応この記事時点でcentos9に設置できたんでその設定事例を..
パスを通す
まずgoのコマンドを打つうえで、そのログインアカウントの.bash_profileが整っているかです。
$ vi ~/.bash_profile
# 「~/go/bin」を追加してください
PATH=~/go/bin:$PATH:$HOME/bin:/usr/bin
export PATH
で
source ~/.bash_profile
こうします。
echo $PATH
で追加されてたらOK、これでGOで作ったコマンドここにできてるんで、パスなしで実行できます。
cobraで
そしてつくりたいコマンドのディレクトリを作ります。
$ mkdir cmdHello; cd ./cmdHello
最新は1.4言うんですが、でも多分なんかエラーでて違う
cobra@v1.4.0
1.3とか1.2.1とか指定すると上手くいきます。まずこの時点で躓きポイントかな。バージョンを指定しないとアカンくなったのかなと思います。
$ go get -u github.com/spf13/cobra/cobra@v1.3.0
で
$ cobra
ができるはずです。これができないと「.bash_profile」の設定が上手く行っていないという事です。
$ go mod init cmdHello
$ cobra init
これで、cmdHelloっていうコマンドの初期テンプレ階層が設置されます。
go init に「cobra init cmdHello」こんなかんじでモジュール名を追加するとディレクトリ階層になります。よう分からん方は、試しに打って消せばわかります。
はい、cobraのプログラムどう書くの?っていうのは沢山記事がヒットしますので割愛します。
で、完成したとします。たとえば
$ go run main.go arg1 arg2
みたいに動くのを確認出来たら、いよいよ「goでコマンド作りたいんだけど」です。
いざ、コマンド
$ go install
$ go build
はい、以上です。
$ ll ~/go/bin
これで確認すると、ありますよね。作ったコマンド。
$ whereis tsukuttacommand
で、出てきますよね!そうです。もうできました。
ここまで書ききってくれる記事ってないので書きました。
$ tsukuttacommand
Bye Bye!
Discussion