Я пытаюсь написать очень простую задачу 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+'
, потому что я видел другие примеры, которые его используют.
Я немного озадачен тем, как заставить это работать. Любые идеи / комментарии / ответы будут с благодарностью!
Редактировать 1: Это на системе Debian (Lenny) Linux на случай, если что-то изменится.