处理由我通过 Capistrano 运行的命令触发的输入提示的正确方法是什么?
一个例子是iptables-persistent
我使用aptitude
. 尽管有--no-gui
标志,但仍会出现提示,要求我确认我希望如何配置。
有没有办法通过命令行传递参数来避免这样的提示?
处理由我通过 Capistrano 运行的命令触发的输入提示的正确方法是什么?
一个例子是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
没有一个代码是我的。格拉西亚斯·内斯奎纳。