#!/bin/sh # # Génération automatique de fichiers latex à partir de fichiers csv contenant les infos de thèse # # these2latex theses_en_cours.csv theses_soutenues.csv hdr_soutenues.csv date # # où theses_en_cours.csv # - est le fichier au format csv des thèses en cours # - contient les champs suivants (avec séparateur "#") # Equipe # Nom # Prénom # Naissance # Nationalité # 1ère inscription # (année) # Diplôme d'origine # Situation en thèse # Exposé mi-parcours # Soutenance prévue # Titre # Directeur # Co-encadrant # (info diverses) # theses_soutenues.csv # - est le fichier au format csv des thèses soutenues # - contient les champs suivants (avec séparateur "#") # Equipe # Nom # Prénom # Date de naissance # Nationalité # 1ère inscription # durée # Situation ultérieure # DEA origine # Situation en thèse # Date soutenance # (année) # Mention # Titre # Directeur # Co-directeur # Jury* (+divers) # hdr_soutenues.csv # - est le fichier au format csv des HdR soutenues # - contient les champs suivants (avec séparateur "#") # Equipe # Nom # Prénom # Date soutenance # (année) # Titre # Jury* (+divers) # date # - est un nombre entier # # génère les fichiers : # theses_A3.tex # theses_LCR.tex # theses_RCLN.tex # theses_OCAD.tex # theses_lipn.tex # # les thèses en cours sont toutes mentionnées # les thèses et HdR soutenues sont mentionnées depuis la date pour les équipes, depuis l'origine pour le lipn equipe[0]="lipn" equipe[1]="A3" equipe[2]="LCR" equipe[3]="OCAD" equipe[4]="RCLN" OLD_IFS="$IFS" NEW_IFS="#" theses_en_cours=$1 theses_soutenues=$2 hdr_soutenues=$3 ddate=$4 ##### 0) initialisation des fichiers for i in 0 1 2 3 4 do rm -f "theses_${equipe[i]}.tex" touch "theses_${equipe[i]}.tex" done ###################################### Partie : thèses en cours ##### 1) echo de l'en-tête for i in 0 1 2 3 4 do echo "\\subsubsubsection{Th\\\`eses en cours} \\renewcommand{\\arraystretch}{1.5} \\noindent{\\scriptsize \\begin{longtable}{l} \\tabTheseE{Nom}{Pr\\'enom}{1\\\`ere insc.}{Situation}{Titre}{Directeur}{Co-encadrant} \\\\ " >> "theses_${equipe[i]}.tex" done ###### 2) lecture du fichier 'theses_en_cours' nblignes=`wc -l ${theses_en_cours} | cut -d " " -f 1` exec 10<${theses_en_cours} # Initialisatieon compteur (la première ligne contient les intitulés des colonnes) n=2 read -u 10 # Initialisation séparateur IFS="$NEW_IFS" # Boucle tant que compteur est inférieur au nombre de lignes while [ "$n" -le "$nblignes" ] do # Lecture d'une ligne read -u 10 Equipe Nom Prenom Naissance Nationalite First_insc annee Diplome_orig Situation_these Expos_mi_parcours Soutenance_prevue Titre Directeur Coencadrant Reste if [ $Equipe != "abandon" ] then # écriture d'une ligne resultat echo "\\tabTheseE{$Nom}{$Prenom}{$First_insc}{$Situation_these}{$Titre}{$Directeur}{$Coencadrant} \\\\" >>"theses_${Equipe}.tex" echo "\\tabTheseE{$Nom}{$Prenom}{$First_insc}{$Situation_these}{$Titre}{$Directeur}{$Coencadrant} \\\\" >> "theses_lipn.tex" fi # On incrémente le compteur n=$(expr $n + 1) done #réinitialisation du séparateur IFS="$OLD_IFS" ##### 3) echo de la partie finale for i in 0 1 2 3 4 do echo "\\end{longtable}} " >> "theses_${equipe[i]}.tex" done ###################################### Partie : thèses soutenues ##### 1) echo de l'en-tête echo " \\subsubsubsection{Th\\\`eses soutenues} " >> "theses_${equipe[0]}.tex" for i in 1 2 3 4 do echo " \\subsubsubsection{Th\\\`eses soutenues} (depuis $ddate) " >> "theses_${equipe[i]}.tex" done for i in 0 1 2 3 4 do echo " \\renewcommand{\\arraystretch}{1.5} \\noindent{\\scriptsize \\begin{longtable}{l} \\tabTheseG{Nom}{Pr\\'enom}{Situation ult\\'erieure}{Soutenance}{Mention}{Titre}{Directeur}{Co-directeur}{Jury} \\\\ " >> "theses_${equipe[i]}.tex" done ###### 2) lecture du fichier 'theses_soutenues' nblignes=`wc -l ${theses_soutenues} | cut -d " " -f 1` exec 11<${theses_soutenues} # Initialisatieon compteur (la première ligne contient les intitulés des colonnes) n=2 read -u 11 # Boucle tant que compteur est inférieur au nombre de lignes while [ "$n" -le "$nblignes" ] do # Initialisation du séparateur IFS="$NEW_IFS" # Lecture d'une ligne read -u 11 Equipe Nom Prenom Date_de_naissance Nationalite First_insc duree Situation_ulterieure DEA_origine Situation_these Date_soutenance annee Mention Titre Directeur Co_directeur Jury # Rénitialisation du séparateur IFS="$OLD_IFS" # Traitement des cas if [ "$Equipe" != "" ] then # modification de la variable Jury Jury=`echo $Jury | sed -e "s/${NEW_IFS}*$//g" | sed -e "s/$NEW_IFS/, /g"` # écriture d'une ligne resultat if [ $ddate -le $annee ] then echo "\\tabTheseG{$Nom}{$Prenom}{$Situation_ulterieure}{$Date_soutenance}{$Mention}{$Titre}{$Directeur}{$Co_directeur}{${Jury}} \\\\" >>"theses_${Equipe}.tex" fi echo "\\tabTheseG{$Nom}{$Prenom}{$Situation_ulterieure}{$Date_soutenance}{$Mention}{$Titre}{$Directeur}{$Co_directeur}{${Jury}} \\\\" >>"theses_lipn.tex" fi # On incrémente le compteur n=$(expr $n + 1) done ##### 3) echo de la partie finale for i in 0 1 2 3 4 do echo "\\end{longtable}} " >> "theses_${equipe[i]}.tex" done ###################################### Partie : HdR soutenues ##### 1) echo de l'en-tête echo " \\subsubsubsection{Habilitations \\\`a Diriger des Recherches soutenues} " >> "theses_${equipe[0]}.tex" for i in 1 2 3 4 do echo " \\subsubsubsection{Habilitations \\\`a Diriger des Recherches soutenues} (depuis $ddate) " >> "theses_${equipe[i]}.tex" done for i in 0 1 2 3 4 do echo " \\renewcommand{\\arraystretch}{1.5} \\noindent{\\scriptsize \\begin{longtable}{l} \\tabTheseH{Nom }{ Pr\\'enom }{}{Soutenance}{Titre}{} \\\\ " >> "theses_${equipe[i]}.tex" done ###### 2) lecture du fichier 'hdr_soutenues' nblignes=`wc -l ${hdr_soutenues} | cut -d " " -f 1` exec 12<${hdr_soutenues} # Initialisatieon compteur (la première ligne contient les intitulés des colonnes) n=2 read -u 12 # Boucle tant que compteur est inférieur au nombre de lignes while [ "$n" -le "$nblignes" ] do # Initialisation du séparateur IFS="$NEW_IFS" # Lecture d'une ligne read -u 12 Equipe Nom Prenom Date_soutenance annee Titre Jury # Rénitialisation du séparateur IFS="$OLD_IFS" # Traitement des cas if [ "$Equipe" != "" ] then # modification de la variable Jury Jury=`echo $Jury | sed -e "s/${NEW_IFS}*$//g" | sed -e "s/$NEW_IFS/, /g"` # écriture d'une ligne resultat if [ $ddate -le $annee ] then echo "\\tabTheseH{$Nom}{$Prenom}{}{$Date_soutenance}{$Titre}{${Jury}} \\\\" >>"theses_${Equipe}.tex" fi echo "\\tabTheseH{$Nom}{$Prenom}{}{$Date_soutenance}{$Titre}{${Jury}} \\\\" >>"theses_lipn.tex" fi # On incrémente le compteur n=$(expr $n + 1) done ##### 3) echo de la partie finale for i in 0 1 2 3 4 do echo "\\end{longtable}} " >> "theses_${equipe[i]}.tex" done