2009-03-04 13 views
1

J'essaye d'employer un manuscrit automatisé, qui se connecterait à SVN, mettrait à jour mes sources, créerait un tarball avec ceux-ci et les scp à un hôte distant.L'utilisation s'attendre à se connecter à SVN

Le problème ici est que, pour chaque connexion à SVN (même pour la caisse ou la mise à jour), nous avons besoin d'entrer notre mot de passe. L'automatisation de l'entrée de mot de passe, la seule façon que j'ai pu trouver, était d'utiliser s'attendre à travailler sur ce point.

Existe-t-il un script dans expect, qui peut prendre en charge SVN et scp pour détecter et donner le mot de passe à SVN, puis à SCP?

J'utilise les éléments suivants:

spawn svn [lindex $argv 0] 
expect " password: $" 
send "$password\r" 
expect { 
    " password: $" send "$password\r" 
    "^At revision " 
    "^Updated to revision " 
} 

Le mot de passe et en commande je passe de la ligne de commande, mais il y a une menace pour la sécurité il si quelqu'un a accès à l'histoire. Les réponses mentionnées ci-dessous ne satisfont pas mes pré-requis, aussi je ne suis pas capable de faire un export pour le moment [d'autres soucis de sécurité :-(]

Répondre

1

linuxbashscript.sh

svn up /path/to/local/copy 
tar -cf backup.tar /path/to/local/copy 
scp backup.tar [email protected]:/path/on/remote/host 

ou encore mieux l'utilisateur svn export qui exclura tous les répertoires .svn.

svn export /path/to/repo /path/to/exported 
tar -cf backup.tar /path/to/local/copy 
scp backup.tar [email protected]:/path/on/remote/host 
1

Si vous utilisez le protocole svn + ssh pour accéder à votre SVN Repo que vous pouvez utiliser les clés SSH et ssh-agent pour gérer la poignée de main de sorte que vous n'avez pas besoin d'impliquer des mots de passe

1

Personnellement, j'utiliserais ANT pour faire toutes ces tâches et ensuite vous pouvez appeler votre script ant si nécessaire. tâches préconfigurées pour svn et scp ainsi que de nombreuses autres tâches de type construction d'automatisation.

1

Si (comme Dave suggéré), vous devez utiliser Ant, vous auriez les tâches suivantes à votre disposition:

  • SvnAnt à faire les check out, check-ins et toutes les choses entre
  • Ant TAR tâche pour créer l'archive
  • Ant SCP tâche de publier

Vous pouvez enregistrer les mots de passe dans un fichier de propriétés distinct si vous êtes préoccupé par la sécurité.