knife-soloの内部メソッド`run_command`の実態の場所について
knife-solo
の実行時に、適用先のユーザーのホームディレクトリに.bashrc
が存在するとエラーに成ってしまうので、実際にどのような処理がそこでされているかを確認しようとしました。
まず chef_version
メソッド内部でrun_command
が呼ばれていたので
lib/chef/knife/solo_cook.rb#L294
run_command(cmd).stdout.strip
run_command
の宣言場所を探し、prepare.run_command
が呼ばれているのを確認しました。
lib/knife-solo/bootstraps.rb#L31
def run_command(cmd)
prepare.run_command(cmd)
end
ただ、
lib/knife-solo/bootstraps.rb#L43
module Delegates
...
def prepare
@prepare
end
end #Delegates
lib/knife-solo/bootstraps.rb#L122
class Base
...
def initialize(prepare)
@prepare = prepare
end
...
end
の処理がメソッドがインスタンス変数を呼び、インスタンス変数がメソッドにより定義されてるように見えるのですが、これがどのような事を期待した処理なのか理解できませんでした。
Issueへの登録はしています、自分で解決できればと思い質問いたします。
https://github.com/matschaffer/knife-solo/issues/410
このprepare
からどのように外部コマンドの実行処理部分を探せるのでしょうか?