Il est possible de générer des paquets ZIP pour SPIP à partir d’un dépot de plugins et d’un fichier de type archivelist.txt
.
Voyons comment l’installer sur un serveur, et comment générer aussi les flux RSS de ces paquets, permettant de lister les plugins de sa zone depuis l’interface d’ajout de plugin de SPIP.
Installer les sources des scripts
Soit un dossier X
. Nous allons créer dedans 4 répertoires permettant de générer nos fichiers (checkout
, paquets
et refxml2rss
) :
# SVN dont on souhaite faire les zip
svn co svn://souk.magraine.net/ checkout/
# Scripts pour realiser les zips
svn co svn://zone.spip.org/spip-zone/_outils_/refxml2rss/ refxml2rss/
svn co svn://zone.spip.org/spip-zone/_dev_/paquets/ paquets/
Le quatrième répertoire est à créer à la main (pour la suite, j’ai utilisé un répertoire htdocs
) mais il est possible de le remplacer par zip
:
mkdir zip
chmod 0755 zip
Installer les librairies nécessaires
sudo aptitude install xsltproc tofrodos
Configurer le générateur de paquets
Il faut editer paquets/bin/paquets.cfg
et rentrer les parametres pour trac, ainsi que les dossiers source et destination :
PQ_SOURCE=/var/www/virtual/magraine.net/miel/checkout
PQ_DEST=/var/www/virtual/magraine.net/miel/htdocs/
PQ_SVN=svn://souk.magraine.net/
PQ_SVNREP=.
PQ_TRAC='tmp=${url#svn://souk.magraine.net/}
trac="http://souk.magraine.net/${tmp%%/*}/browser/${tmp#*/}"
archive="http://miel.magraine.net${args[2]#*/htdocs}"
text="Voir $trac\nArchive: $archive"
xml="<uri>$trac</uri>\n<archive>$archive</archive>"
'
Il faut éditer aussi refxml2rss/ref.xsl
et modifier les paramètres pour son dépot, ici :
<channel>
<title>Souk.magraine.net - liste des plugins</title>
<link>http://souk.magraine.net/browser/</link>
<description type="html">Liste des <a href="http://souk.magraine.net/browser/"$
Extraction des infos de ref.xml.gz par une xslt pour g#233;nerer un rss, h$
<language>fr</language>
<generator>http://trac.rezo.net/trac/spip-zone/browser/_outils_/refxml2rss/ref.xsl</genera$
<xsl:apply-templates select="zone_elt" />
</channel>
Créer un lançeur pour les scripts
Nous créons un fichier run_paquets.sh
. Il vous faut donner l’adresse complete du dossier X
ici dans la variable miel
.
#!/bin/bash
miel=/var/www/virtual/magraine.net/miel
paquets=$miel/paquets
rss=$miel/refxml2rss
checkout=$miel/checkout
zip=$miel/htdocs
echo
echo -----------------------------
echo Generation de Paquets Zip
echo -----------------------------
echo
echo "Mise a jour des svn"
echo ----------------------
echo ">> Souk"
svn up $checkout
echo
echo "Creation des zips"
echo --------------------
bash $paquets/bin/paquets.sh
echo
echo "Creation des rss"
echo --------------------
bash $rss/refxml2rss.sh $zip/paquets.xml.gz
Executer le lançeur
bash run_paquets.sh
On peut faire un crontab pour réaliser automatiquement l’opération de façon périodique :sudo crontab -e
Ajouter :
# paquets
05 0,6,12,18 * * * /var/www/virtual/magraine.net/miel/run_paquets.sh >> /var/www/virtual/magraine.net/miel/htdocs/log/run_paquets.log
Ajouter les plugins du dépot dans l’interface d’ajout de plugin de SPIP
Il suffit de se rendre sur l’adresse où sont stockés les zips générés, ici http://miel.magraine.net/ et de copier l’adresse de paquets.rss.xml.gz
dans le champs prévu à cet effet dans l’interface privée de SPIP, dans configurations > plugins (ecrire/?exec=admin_plugin
).