#!/bin/bash # unison_links.sh user # creation des liens symbolique pour les dossiers unison # # function mkclasses { user=$1 if [ "$2" == "x" ]; then rm -fr $unisondir/$user/Classes else classesdir=/var/se3/Classes invuser=$(echo $user|sed "s/\(.*\)\.\(.*\)/\2\.\1/") classes=$(ldapsearch -xLLL "(memberuid=$user)" cn | grep "cn: Equipe" | sed "s/cn: Equipe_/Classe_/") if [ -z "$classes" ]; then #eleve classes=$(ldapsearch -xLLL "(memberuid=$user)" cn | grep "cn: Classe_" | sed "s/cn: //") groupe=eleve else groupe=prof fi # on efface tout et on recommence... rm -fr $unisondir/$user/Classes for classe in $classes do mkdir -p $unisondir/$user/Classes/$classe if [ "$groupe" == "eleve" ]; then ln -s $classesdir/$classe/_travail $unisondir/$user/Classes/$classe/_travail ln -s $classesdir/$classe/$invuser $unisondir/$user/Classes/$classe/$invuser [ -d $classesdir/$classe/_echange ] && ln -s $classesdir/$classe/_echange $unisondir/$user/Classes/$classe/_echange elif [ "$groupe" == "prof" ]; then for rep in $(ls -d $classesdir/$classe/*) do rep=$(basename $rep) case $rep in _*) ln -s $classesdir/$classe/$rep $unisondir/$user/Classes/$classe/$rep ;; *) if [ "$2" == "e" ]; then ln -s $classesdir/$classe/$rep $unisondir/$user/Classes/$classe/$rep fi ;; esac done fi ls -ld $unisondir/$user/Classes/$classe/* done fi } function mkdocs { if [ "$2" == "x" ]; then rm -fr $unisondir/$1/Docs else mkdir -p $unisondir/$1 ln -s /home/$1/Docs $unisondir/$1/Docs fi } function mkgroupes { user=$1 if [ "$2" == "x" ]; then rm -fr $unisondir/$user/Groupes else classesdir=/var/se3/Classes classes=$(ldapsearch -xLLL "(memberuid=$user)" cn | grep "cn: Equipe" | sed "s/cn: Equipe_/Classe_/") if [ -z "$classes" ]; then #eleve classes=$(ldapsearch -xLLL "(memberuid=$user)" cn | grep "cn: Classe_" | sed "s/cn: //") groupe=eleve else groupe=prof fi classes=$(ldapsearch -xLLL "(memberuid=$user)" cn | sed "s/cn: //") # on efface tout et on recommence... rm -fr $unisondir/$user/Groupes for classe in $classes do pathgroup="$classesdir/Classe_grp_$classe" if [ -d "$pathgroup" ]; then mkdir -p $unisondir/$user/Groupes/$classe ln -s $pathgroup/_travail $unisondir/$user/Groupes/$classe/_travail [ -d $pathgroup/_echange ] && ln -s $pathgroup/_echange $unisondir/$user/Groupes/$classe/_echange if [ "$groupe" == "prof" ]; then ln -s $pathgroup/_profs $unisondir/$user/Groupes/$classe/_profs fi ls -ld $unisondir/$user/Groupes/$classe/* fi done fi } unisondir=/var/se3/synchro while getopts d:c:e:k:x:p:q: option do case $option in k) mkdocs $OPTARG x ;; x) mkclasses $OPTARG x ;; d) mkdocs $OPTARG ;; c) mkclasses $OPTARG ;; e) mkclasses $OPTARG e ;; p) mkgroupes $OPTARG ;; q) mkgroupes $OPTARG x ;; esac done