Eu estava em dúvida quando você disse "svnsync sync não aceita opções para especificar um login" então eu verifiquei o documentação e adivinhe, faz :
--source-password
--source-username
--sync-password
--sync-username
Essas opções devem ser suficientes para você voltar a um script cron simples.
De volta ao caso em que você realmente não pode especificar essas opções, ainda é fácil escrever um script de wrapper que envie dados para o stdin do programa. Por exemplo, o seguinte pode funcionar (onde program
é o programa que você deseja executar e text
é um arquivo em que você armazena o texto a ser enviado para o programa):
program < text
No entanto, para autenticação, os programas geralmente são gravados em tty
e não em stdin
(por motivos de segurança). Eu não estou familiarizado com isso, mas você ainda pode criar um terminal falso nesse caso. Isto é onde expect
entra em uso.