Capistrano で実行するコマンドによってトリガーされる入力プロンプトを処理する正しい方法は何ですか?
1 つの例は、iptables-persistent
私が を使用してインストールするパッケージaptitude
です。フラグにもかかわらず、--no-gui
どのように構成するかを確認するプロンプトが表示されます。
このようなプロンプトを回避するために、コマンド ラインからパラメーターを渡す方法はありますか?
Capistrano で実行するコマンドによってトリガーされる入力プロンプトを処理する正しい方法は何ですか?
1 つの例は、iptables-persistent
私が を使用してインストールするパッケージaptitude
です。フラグにもかかわらず、--no-gui
どのように構成するかを確認するプロンプトが表示されます。
このようなプロンプトを回避するために、コマンド ラインからパラメーターを渡す方法はありますか?
私はこの非常に役立つ handle_command_with_input メソッドを見つけて実装することができました:
https://github.com/nesquena/cap-recipes/blob/master/lib/cap_recipes/tasks/utilities.rb
def handle_command_with_input(local_run_method, shell_command, input_query, response=nil)
send(local_run_method, shell_command, {:pty => true}) do |channel, stream, data|
if data =~ input_query
if response
logger.info "#{data} #{"*"*(rand(10)+5)}", channel[:host]
channel.send_data "#{response}\n"
else
logger.info data, channel[:host]
response = ::Capistrano::CLI.password_prompt "#{data}"
channel.send_data "#{response}\n"
end
else
logger.info data, channel[:host]
end
end
end
コードはどれも私のものではありません。Gracias a Nesquena.