2010-05-24 8 views
1

Je veux automatiser le processus de plone3_buildout.Automate paster create -t ​​plone3_buildout

Explication: La valeur par défaut (celui que j'utilise) façon de construire un site plone utilise Paster, comme ceci:

paster create -t plone3_buildout 

Cela me pose quelques questions et puis créez un défaut buildout pour le site . Ce que je veux: Je veux automatiser ce processus en utilisant buildout. Mon buildout exécutera cette commande paster, alimenter mes valeurs préconfigurées au pasteur.

Je n'ai pas trouvé de recette qui puisse le faire. Si quelqu'un a une idée de comment faire cela, s'il vous plaît partager l'info.

S'il existe une recette qui peut fournir des valeurs aux commandes interactives (avec une sortie connue, comme avec la commande plone3_buildout), cela serait également utile.

Répondre

2

La commande paster create peut accepter une option --config. Cela vous permet de générer ou d'utiliser un fichier avec des réponses aux questions.

$ paster create -t plone3_buildout --config=saved.cfg my-buildout 
... 
answer questions 
... 

Maintenant, il y aura un fichier buildout.config dans le répertoire courant.

$ cat saved.cfg 
[pastescript] 
eggifiedplone__eval__ = True 
zope_user = admin 
expert_mode = all 
zope2_install = 
plone_products_install = 
tarballs__eval__ = False 
egg_plugins__eval__ = [] 
plone_version = 3.3.4 
debug_mode = off 
plus = + 
dot = . 
zope_password = 
http_port__eval__ = 8080 
egg = test_buildout 
z29tarballs__eval__ = False 
eggifiedzope__eval__ = False 
verbose_security = off 

Vous pouvez modifier ce fichier et lancer le programme avec la même commande.

$ paster create -t plone3_buildout --config=saved.cfg my-new-buildout 

Cette fois il ne vous posera pas de questions. Toutes les réponses viendront du fichier de configuration. Le dernier ZopeSkel (2.15+) a également un moyen de stocker ces paramètres dans $HOME/.zopeskel.

+0

Merci pour cette solution. Je l'ai essayé avec un projet de pylônes, et ça marche très bien, je vais l'essayer bientôt sur le projet plone. Je voudrais encore faire une recette de cette étape de la création du projet. – roopesh

1

Il existe un utilitaire appelé "expect" conçu pour automatiser les opérations de ligne de commande interactive.

http://expect.nist.gov

Une autre approche serait de modifier ou de clone et personnaliser le script plone3_buildout et modèle dans le package ZopeSkel. Cependant, à ce stade, si vous êtes en train de coder en dur toutes les variables, vous pouvez aussi bien créer le buildout une fois, le mettre dans le contrôle de version et le copier/cloner pour créer de nouvelles instances.

+0

Voilà, c'est une façon de le faire. J'ai utilisé pexpect. Ensuite, j'ai voulu écrire une recette de buildout pour automatiser le processus. C'est un travail en cours pour le moment. – roopesh