2017-06-27 13 views
-2

パッケージ全体のインポートを絶対パスから相対パスに変更するツールはありますか? 現在、このようなpackage bar一見のための私のインポート:私は絶対パスではなく相対パスへのインポートを修正する

import foo/bar 

にこれを変換したい

import FOO_common/server/src/foo/bar 

は私のためにこれを行うことがgofmtのようなツールはありますか?私はbash sedでこれを解決できることを知っています。しかし、そのためにそこに存在する可能性があるgo toolを期待しています。

+0

'FOO/bar'は相対パスではありません - ゴーは輸入がに根ざしていることを前提としてい'GOPATH/src'。相対パスは "./foo/bar"ですが、それはあなたが望むものではない可能性が高いため、階層内の各ファイルの場所に応じて別のimport文を使用する必要があります。おそらく、通常の輸入に固執したいと思うでしょう。 – Adrian

+1

あなたは実際に相対インポートパスを使いたくありません。いずれの場合もGoツールでサポートされているわけではなく、迅速なオン/オフテストのためのものです。 – JimB

+0

@Adrian私の間違い...私は、 '$ GOPATH/src/foo/bar'が私のプロジェクトディレクトリに' $ GOPATH'を指定したことを意味しました – nitimalh

答えて

1
gofmt -w -r '"FOO_common/server/src/foo/bar" -> "foo/bar"' *.go 

これは文字列をそのまま検索し、新しい文字列で置き換えます。

あなたがそのようなワイルドカードなど、より高度な機能が必要な場合は、この他のツールで見たいと思うかもしれません:

https://github.com/rogpeppe/govers

+0

これを試しました。ワイルドカードを使用して物を置き換える方法はありますか? FOO_common/server/src/<*> - ><*>? – nitimalh

+1

も私の答えを編集してそれにも答える – eugenioy