2015-02-06 4 views
0

Я пытаюсь выполнить команду svn update, но поскольку я не передал имя пользователя и пароль с помощью этой команды, он запрашивает у меня эти учетные данные. Но мне нужно записать вывод STDERR этой команды.Получение вывода STDERR не выполняется, когда требуется аутентификация SVN

Это то, что происходит сейчас:

record = `svn update 2>&1` 

Он выводит:

Authentication realm: <https://url_of_repository:443> url_of_repository SVN Repository 
Username: 

И это останавливает выполнение как его ожидает пользователя ввести учетные данные. Но я хотел бы записать вышеприведенный вывод в виде строки в переменной, чтобы я мог передать ему имя пользователя и пароль. Как мне это сделать.

Спасибо за любую помощь.

ответ

1

Это можно сделать, передав аргумент --non-interactive с вашей командой, чтобы он не запрашивал учетные данные для аутентификации.

Так что в вашем случае:

output = `svn update "#{repo_path}" --non-interactive 2>&1` 

check_authentication = output.include?("Authentication failed") 

check_authentication возвратит true, если аутентификация не удалась.

Смежные вопросы