Я написал это в моем блоге , но здесь это в простом тексте.
Мне пришлось скачать и установить Experperl и модуль IO :: Tty perl. Этот маленький Perl-скрипт успешно выполняет обновление cvs, даже с запросом пароля ssh.
#!/usr/bin/perl
use Expect;
chdir("/files/hudson_local/jobs/MOJARRA_1_2X_ROLLING_GLASSFISH_2_1_1/workspace");
$ENV{"CVSROOT"} = ":ext:8bit@java.net/cvs/javaserverfaces-sources~cvs-repository";
($cvs = Expect->spawn("cvs update -d -P")) || die "Couldn't spawn cvs, $!";
unless ($cvs->expect(30, "Enter passphrase for key '/files/hudson_local/.ssh/id_rsa':")) {
die "Never got the passphrase prompt";
}
print $cvs "not the real password\r";
unless ($cvs->expect(300, "cvs update: Updating www/legal/jsf-cddl")) {
die "Never saw update starting";
}