【发布时间】:2009-11-12 18:28:06
【问题描述】:
我正在尝试编写一个非常简单的 rake 任务(并将其合并为一个相当大的 rake 任务),它将调用以下命令并传入一个随机生成的密码。目前,让我们甚至伪造随机生成,并给它一个设置密码'test':
createuser -SDPRE test
我的任务代码如下:
desc "Create a test user with test password"
task "test" do
puts('Creating User')
IO.popen "createuser -SDRPE test", 'w+' do |io|
io.write "test\ntest\n"
io.close_write
end
raise 'createuser failed' unless $?.success?
end
io.write 似乎不起作用,因为我仍然需要输入密码。它也没有被破坏。运行任务并手动输入密码后,我可以使用该密码以psql 登录。
我尝试了很多变体,例如io.close,以'w' 打开文件,甚至'r' 或'r+',因为我看到了其他使用它的示例。
我有点不知道如何让它发挥作用。任何想法/cmets/答案将不胜感激!
编辑 1:这是在 Debian (Lenny) Linux 系统上,以防万一。
【问题讨论】: