#!/bin/bash
###########################################################################
# Eole NG - 2015
# Copyright Pole de Competence Eole  (Ministere Education - Academie Dijon)
# Licence CeCill  cf /root/LicenceEole.txt
# eole@ac-dijon.fr
#
# 01-zephir-modules
#
# Script de mise en place des modules par défaut de Zéphir
#
###########################################################################

ZEPHIR_DIR=/usr/share/zephir
SRC_DIR=${ZEPHIR_DIR}/eole_modules
DEST_DIR=${ZEPHIR_DIR}/default_modules

PREVIOUS_MODS=/var/lib/zephir/installed_modules

echo -e "\n## Mise à jour des modules par défaut ##"

# Lecture de la liste des modules dèjà traités
if [ -f $PREVIOUS_MODS ]
then
    known_modules=$(cat $PREVIOUS_MODS)
else
    known_modules=""
fi

cd $SRC_DIR
for VERSION in $(ls -d *)
do
    # parcours des répertoires de distributions
    if [ -d $VERSION ]
    then
        if [ ! -d ${DEST_DIR}/${VERSION} ]
        then
            mkdir -p ${DEST_DIR}/${VERSION}
        fi
        for module in ${VERSION}/*-*
        do
            known=0
            for known_mod in $known_modules
            do
                if [ "$module" == "$known_mod" ]
                then
                    known=1
                    break
                fi
            done
            # Génération d'un lien de eole_module vers default_module
            # sauf si: module traité précédemment et fichier absent (module supprimé)
            if [ $known -eq 0 -o -f ${DEST_DIR}/${module} ]
            then
                if [ -e ${DEST_DIR}/${module} -o -L ${DEST_DIR}/${module} ]
                then
                    # on recrée le lien à chaque installation
                    rm -f ${DEST_DIR}/${module}
                fi
                ln -s ${SRC_DIR}/${module} ${DEST_DIR}/${module}
            fi
        done
    fi
done
# Sauvegarde de la liste des modules traités lors de cette passe
# Cela évite de recréer des liens supprimés par l'utilisateur (#12153)
if [ -d $SRC_DIR ]
then
    cd $SRC_DIR
    ls */*-* 2>/dev/null >$PREVIOUS_MODS
fi

exit 0
