#! /bin/bash # création d'un repo git en ligne leRepo avec dedans un fichier texte et un fichier main.c echo "" foldername="leRepo" #folder de test filenames=("texte" "main.c") #quand main.c n'est pas compilé lienClonage=ssh://git@git.jean-cloud.net:22529/eleonore/pourTesterGitUpdate.git #CAS 0 : git cloné dans un dossier vide sans tag #if it exists, delete the folder if [ -d $foldername ]; then rm -rf $foldername echo "le dossier de test préexistant $foldername a été supprimé" fi cas0="true" mkdir $foldername cd $foldername ../git_update.sh $lienClonage cd .. #vérification que leRepo a été cloné et qu'il contient bien les fichiers if [ -d "./$foldername" ]; then echo "le dossier $foldername a été créé" for file in ${filenames[@]} do if [ -f "./$foldername/$file" ]; then echo "le fichier $file a bien été importé" else echo "le fichier $file n'a pas pu être importé" cas0="false" echo $cas0 exit #or die ? fi done else echo "le dossier $foldername n'a pas pu être créé" cas0="false" echo $cas0 exit #ou die ? fi #vérification que l'historique n'a pas été importé cd $foldername if [ $(git log | grep "commit" | wc -l) -gt 1 ]; then echo "Plus d'un commit a été sauvegardé" cas0="false" elif [ $(git log | grep "commit" | wc -l) = 1 ]; then echo "Seul le dernier commit a été sauvegardé" else echo "Erreur dans le clonage, git log non cohérent" exit fi if [ "$cas0" = "true" ]; then echo "Cas de test 0, dans un dossier vide préexistant, sans historique, sans tag : OK" else echo "Cas de test 0, dans un dossier vide préexistant, sans historique, sans tag : ECHEC" fi cd .. #CAS 1 : git cloné dans un dossier vide avec tag #if it exists, delete the folder nomBranche=main nomTag=debut if [ -d $foldername ]; then rm -rf $foldername echo "le dossier de test préexistant $foldername a été supprimé" fi cas1="true" mkdir $foldername cd $foldername echo "$(pwd)" ../git_update.sh -b $nomBranche -t $nomTag $lienClonage #avec l'option t qui redirige vers un tag cd .. if [ -d "./$foldername" ]; then echo "le dossier $filename a bien été créé" for file in ${filenames[@]} do if [ -f "./$foldername/$file" ]; then echo "le fichier $file a bien été importé" else echo "le fichier $file n'a pas pu être importé" cas1=false fi done else echo "le dossier $filename n'a pas pu être cloné" cas1=false fi if [ $(git tag | wc -l) -lt 1 ]; then echo "le tag $tagname n'a pas été importé" elif [ $(cat texte | grep "0.1" | wc -l) -lt 1]; then echo "le tag $tagname a été importé mais le git checkout n'a pas fonctionné" else echo "le tag a été importé et le git checkout $tagname a fonctionné" fi