はじめに
ghqを使ったローカルリポジトリの統一的・効率的な管理についてや
ghq: リモートリポジトリのローカルクローンをシンプルに管理するで紹介されているように,
$GOPATH/src以下に言語に関わらずすべてのソースコードを集めると,
リポジトリ管理が楽になる反面$GOPATH/srcがどんどん大きくなっていく.
goimportsのスキャン対象から特定ディレクトリを除外するによると,
.goimportsignore に記載されたパスは goimports の対象から外れるそうなので,
Go言語以外のリポジトリを追加することにした.
gii
gii は $GOPATH/src 以下にある git リポジトリのうち,
.go ファイルを含まないものを $GOPATH/src/.goimportsignore に追加するツール.
インストールは,
go get github.com/jkawamoto/gii
か,Homebrew を使っている場合は,
brew tap jkawamoto/gii
brew install gii
または,ここからバイナリを取得する.
実行は,単に gii を呼ぶだけ.--gopath オプションで $GOPATH 以外をルートにできる.
ヘルプテキストは次の通り.
gii [global options]
GLOBAL OPTIONS:
--gopath GOPATH GOPATH [$GOPATH]
--help, -h show help
--version, -v print the version
すでに,.goimportsignore が存在している場合は,重複しないエントリのみ追記する.
削除には対応していないので,手動で行う必要がある.
おわりに
$GOPATH/src にあって,Go言語以外のリポジトリはそこそこあるが,
大多数は go get で適当に取ってきたライブラリなので,あまり goimports 速度は改善はしないかも知れない.
また,似たツールはすでにたくさんありそう・・・.
(2016年7月24日追記)
pwaller/goimports-update-ignoreというツールがありました :P