🦔
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