🦔
bundleコマンド実行時に任意の場所にあるGemfileを参照する
bundle
コマンドを実行すると、通常はカレントディレクトリを起点に親ディレクトリへ遡ってGemfile
が検索されるが、全く別のディレクトリにあるGemfile
を参照したいことがある。
例えばthor
コマンドを実行する際に、カレントディレクトリを基準にアレコレ処理をしたいが、コマンドを構成するコードや参照するgemの情報は別の場所で管理したいとする。
# do_somethingの実装はどこか別のディレクトリにある……
bundle exec thor do_something
こういう場合はgemfile
パラメータを設定することで、任意の場所にあるGemfile
を参照させることができる(相対パスも可能)。例えばこのようにbundle config
を実行すると
bundle config set --local gemfile ../commands/Gemfile
カレントディレクトリに次のような.bundle/config
ファイルが作成され
---
BUNDLE_GEMFILE: "../commands/Gemfile"
以降、このディレクトリでbundle
コマンド実行すると常に../commands/Gemfile
が参照される。
Discussion