Pour le détail de la construction de la commande sed (qui est le truc compliqué de l’affaire...) voir :
http://www.commentcamarche.net/faq/...
- #!/bin/bash
- #
- # Génère un sh avec les "git clone" de tous les plugins d'un SPIP
- #
- # chaque ligne du fichier générée est de la forme:
- # git clone https://github.com/nom_repo/nom_plugin.git nom_plugin
- #
- # ce fichier sera lancé dans le rep plugins/ d'un SPIP
- #
- # chemin du répertoire des plugins du SPIP
- REP_PLUGINS=./
- # chemin du fichier sh à créer
- FICHIER_SH=./dupliquer_plugins.sh
- # initialiser le fichier
- echo "# commandes des plugins a installer" > $FICHIER_SH
- for i in `ls $REP_PLUGINS`; do
- if [ -d $REP_PLUGINS/$i/.git ]; then
- grep "url" $REP_PLUGINS/$i/.git/config |sed 's/.*url = /git clone /;s/.*\/\([^\/]*\).git$/\0 \1/' >>>
- fi
- done
- # passer le fichier sh en executable
- chmod +x $FICHIER_SH
Une fois ce script lancé en étant dans le sous dossier `plugins`, on récupère le fichier dupliquer_plugins.sh généré dont le contenu ressemblera à :
- svn co svn://zone.spip.org/spip-zone/_plugins_/acces_restreint/trunk acces_restreint
- svn co svn://zone.spip.org/spip-zone/_plugins_/adaptive_images/trunk adaptive_images
- git clone https://github.com/nursit/home.git home
- svn co svn://zone.spip.org/spip-zone/_plugins_/agenda/trunk agenda
- svn co svn://zone.spip.org/spip-zone/_plugins_/alias alias
- git clone https://github.com/nursit/bank.git bank
- ...
Il ne reste plus qu’a transférer ce fichier dans le répertoire plugins/ du nouveau SPIP, et le lancer en ligne de commande pour avoir les mêmes plugins installés.
On peut également décider de supprimer un certain nombre de lignes correspondantes aux plugins que l’on ne souhaite pas installer.
TODO :
- ajouter la récupération de la branch git en cours : cf https://stackoverflow.com/a/11868440
- git rev-parse --abbrev-ref HEAD
- ou
- git status | head -1
et intégrer l’appel de branche dans le git clone :
- git clone --branche xxxx url
Alternative si vos plugins ne sont pas installés en ligne de commande :
voir l’astuce d’Eliaz blog : Migrer facilement ses plugins d’un SPIP à un autre