Go
Git
golang

Go言語以外のリポジトリを.goimportsignoreに追加する

More than 1 year has passed since last update.

はじめに

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