101 lines
2.9 KiB
Bash
Executable File
101 lines
2.9 KiB
Bash
Executable File
#! /bin/bash
|
|
# création d'un repo git en ligne leRepo avec dedans un fichier texte et un fichier main.c
|
|
echo "<execution de test_git_update.sh>"
|
|
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
|
|
|
|
|