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

Posted: , Modified:   Go Git Qiita

本稿は Qiita 投稿記事 のバックアップです.

はじめに

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というツールがありました 😞