GoでCLIツールを作ってinstallする
GoでCLIを自作してinstallするまでの一連の流れを紹介します。
ツールを作る
例えば、次のようなecho
コマンドと同じような動作をするmyecho
を作成します。
package main import ( "flag" "fmt" ) func main() { flag.Parse() args := flag.Args() cmd := "" for _, arg := range args { cmd += arg + " " } fmt.Println(cmd) }
この時点では次のように実して動作を確認できます。
$ go run *go hoge fuga hoge fuga
インストールする
modulesを設定しておきます。
例えばmyecho
というツール名にしたい場合は、次のようにmodulesを設定します。
ここで設定した名前がツールを使うときに呼び出すコマンドになります。
(modulesを設定していない場合、main.goが置かれているディレクトリ名がツール名になるようです)
$ go mod init myecho
次のコマンドでビルド&インストールします。
GOPATH
を設定している場合は$GOPATH/bin
、設定していない場合は$HOME/go/bin
がインストール先になります。
$ go install
実行する
以下のように実行できれば成功です。
$ myecho hoge fuga hoge fuga
次のようにエラーが出る場合はPATHが通っていない可能性があるので、PATHを通す必要があります。
bash: myecho: command not found
$HOME/go/bin
にPATHを通す場合は、~/.bash_profile
にPATH=$PATH:$HOME/go/bin
のように記載することでPATHを通します。
記入後、次のようにコマンドを実行して設定を有効にします。
$ source ~/.bash_profile