mistergraphx
11/27/2017 - 4:43 PM

Script bash de mise a jour et synchro

Effectue le checkout svn d'une liste de repositories /Depots via un fichier distrib.txt

Installation

  • télécharger le script ^^
  • le rendre éxécutable chmod +x checkout_distrib.sh
  • Editer les variables d'environnement WORKING_DIR - chemin depuis la racine LISTE - chemin du fichier distrib depuis la racine
  • Editer les raccourcis vers les urls des dépots
  • Editer le fichier distrib.txt avec les packages Chaque package est défini par le chemin depuis la racine spécifié du depot sans slash à la fin suivi d'un ; et du raccourcis définissant le dépot
    mon_plugin/trunk;ZONE_PLUGINS
    
#!/bin/bash

WORKING_DIR='/Users/macbook/Sites/test_distrib/plugins/'
LISTE='/Users/macbook/Sites/test_distrib/plugins/distrib.txt'
#DEPOTS
# Raccourcis pour les urls des racines de dépots
#JANGOO='svn://un_certain_depot.net/mistergraphx/jangoo_plugins/'
ZONE_PLUGINS='svn://zone.spip.org/spip-zone/_plugins_/'
#PUBLIC='svn://un_depot_par_defaut.net/spip_plugin/public_plugins/'


cat <<EOF
    CHECKOUT SPIP DISTRIB :
    -----------------------
    
    SOURCES :
    http://www.cyberciti.biz/faq/unix-linux-bash-read-comma-separated-cvsfile/
    
    [ETAT] : DEV :
    
    Parcours le fichier distrib.txt situé dans LE répertoire
    définie par working_dir.
    
    Structure du fichier distrib :
    
    plugin;depot (raccourcis : ZONE_PLUGINS,PUBLIC)
    
    /!\ ATTENTION !! /!\
    
    *   Retour a la ligne sur la dernière ligne du fichier
        sinon le dernier plugin n'est pas pris en compte
        
    *   Pas de Commentaires # ...
    
    Config actuelle :
    
    Dossier de travail : ${WORKING_DIR}
    Liste des plugins : ${LISTE}
    
    [1] Lancer le checkout
    [q] quitter
EOF

cd ${WORKING_DIR}

echo -n "Choix : "
read options

case $options in
    1)

INPUT=${LISTE}
OLDIFS=$IFS
IFS=$';'
[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; }
while read plugin depot
do
    if [[ $depot == 'JANGOO' ]] ; then
        url=${JANGOO}
    elif [[ $depot == 'ZONE_PLUGINS' ]] ; then
        url=${ZONE_PLUGINS}
    else
        url=${PUBLIC}
    fi
    svn checkout "$url/$plugin/" $plugin 
done < $INPUT
IFS=$OLDIFS

    exit
    ;;
    q)
        echo "Bye !!! ${USER_NAME}"
        exit 143
    ;;
esac
exit 1
z-core/trunk;ZONE_PLUGINS
yaml;ZONE_PLUGINS
verifier;ZONE_PLUGINS
spip-bonux-3;ZONE_PLUGINS
saisies/trunk;ZONE_PLUGINS
facteur/trunk;ZONE_PLUGINS
ieconfig/trunk;ZONE_PLUGINS
menus/trunk;ZONE_PLUGINS
en_travaux/trunk;ZONE_PLUGINS