Générer un fichier de commandes SVN et GIT pour l’installation d’un ensemble de plugins à partir de ceux d’un SPIP existant - Documentation technique

  1. #!/bin/bash
  2. #
  3. # générer un sh avec les "svn checkout" ou "git clone" de tous les plugins d'un SPIP
  4. #
  5. # chaque ligne du fichier généré est de la forme:
  6. # svn co  svn://zone.spip.org/spip-zone/_plugins_/nom_plugin nom_plugin
  7. # ou
  8. # git clone https://github.com/nom_repo/nom_plugin.git nom_plugin
  9. #
  10. # ce fichier sera lancé dans le rep plugins/ d'un SPIP que l'on veut munir des mêmes plugins
  11. #
  12.  
  13. # chemin du répertoire des plugins du SPIP
  14. REP_PLUGINS=/var/www/mon_spip/plugins
  15.  
  16. # chemin du fichier sh à créer
  17. FICHIER_SH=./dupliquer_plugins.sh
  18. # initialiser le fichier
  19. echo "# commandes des plugins a installer" > $FICHIER_SH
  20.  
  21. for i in `ls $REP_PLUGINS`; do
  22.   if [ -d  $REP_PLUGINS/$i/.svn ]; then
  23.     svn info $REP_PLUGINS/$i |sed -r -n '/^URL.:/{h;G;s/\n/ /;s/URL.:/svn co/1;s/\/trunk$//;s/\/branches\/[^\/]*$//;s/URL.*\///;p}' >> $FICHIER_SH
  24.   fi
  25.   if [ -d  $REP_PLUGINS/$i/.git ]; then
  26.     grep "url"  $REP_PLUGINS/$i/.git/config |sed 's/.*url = /git clone /;s/.*\/\([^\/]*\).git$/\0 \1/' >> $FICHIER_SH
  27.   fi
  28. done
  29.  
  30. # passer le fichier sh en executable
  31. chmod +x $FICHIER_SH

Télécharger


Un autre script (SVN uniquement) via @Marcimat :

  1. #!/bin/bash
  2. #
  3. # Ce script crée un fichier `liste_svn_co.done.sh` contenant une liste
  4. # de commande svn checkout à faire pour retrouver la même arborescence
  5. #
  6. # Ceci sous-entend que seuls les répertoires à la racine du répertoire
  7. # d'exécution sont sous svn (pas de sous répertoire ayant lui même les répertoires SVN).
  8. # Tout répertoire non svn est ignoré.
  9. #
  10. # Ainsi, si le script est exécuté dans plugins/
  11. # Avec cette arbo cela fonctionnera :
  12. # - A
  13. # - B
  14. # - C
  15. # où A, B et C sont les répertoires issus d'un SVN quelconque.
  16. #
  17. # Mais *pas* avec cette arbo :
  18. # - themes/A
  19. # - themes/B
  20. # - C
  21. # Le répertoire 'themes' n'étant pas en SVN sera ici ignoré.
  22. #
  23.  
  24. FILE='liste_svn_co.done.sh'
  25. ICI=$(pwd)
  26.  
  27. rm -f $FILE;
  28. echo "#!/bin/bash" >> $FILE
  29. echo "#" >> $FILE
  30. echo "# Liste des svn co du répertoire :" >> $FILE
  31. echo "# "$ICI >> $FILE
  32. echo >> $FILE
  33.  
  34. for i in $(ls); do
  35.         if [ -d $i ]; then
  36.                 cd $i
  37.                 URL=$(svn info | grep URL | head -1 | cut -d ":" -f2-3)
  38.                 NOM=$(basename $i)
  39.                 cd ..
  40.                 if [ -n "$URL" ]; then
  41.                         echo "svn co"$URL $NOM >> $FILE;
  42.                 fi
  43.         fi
  44. done

Télécharger

source https://tech.gamuza.fr/generer-un-f...