はじめに
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