
#pour compiler et créer la commande dans /usr/local/bin
gitar: local
	@ (rm -f /usr/local/bin/gitar || sudo rm -f /usr/local/bin/gitar) 2>/dev/null
	@ chmod a+x "$$PWD/gitar.sh"
	@ (ln -s "$$PWD/gitar.sh" /usr/local/bin/gitar || sudo ln -s "$$PWD/gitar.sh" /usr/local/bin/gitar) 2>/dev/null
	@ echo " création commande gitar terminée."

#pour compiler hors de /usr/local/bin
local:
	@ dune build gitar.exe
	@ mv "$$PWD/gitar.exe" "$$PWD/gitar"
	@ echo " gitar compilé"

#nettoyage de tout ce qui a été créé
clean:
	@ dune clean
	@ rm -f gitar
	@ (rm -f /usr/local/bin/gitar || sudo rm -f /usr/local/bin/gitar) 2>/dev/null
	@ echo " nettoyage effectué"

clean_local:
	@ dune clean
	@ rm -f gitar
	@ echo " nettoyage effectué"



#### FONCTIONS DE DÉMONSTRATION : très pratique pour tester les merges ou opur créer un repo 
demo: gitar
#initialisation du repo
	@ echo $(-e) "DÉMONSTRATION DU MERGE :\n"
	@ echo $(-e) "> gitar initialise test"
	@ rm -r test ; gitar initialise test
	@ echo $(-e) ""

#initialisation des premiers fichiers
	@ read -n 1 -s -r -p ""
	@ echo $(-e) "> gitar branch"
	@ cd test ; gitar branche
	@ echo $(-e) ""


	@ read -n 1 -s -r -p ""
	@ echo $(-e) "* création des fichiers :"
	 cd test ; echo "zhevlizerhbrvivjnezv" > menthe
	 cd test ; echo "hgeikejvnejnvjevnoee" > oignon
	 cd test ; echo "bvieencnxisndoduzucj" > endive
	 cd test ; echo "dmlzyzbcyiziycbbicnc" > persil
	 cd test ; echo "uyrutyireuteritozozu" > salade
	@ echo $(-e) ""

	@ read -n 1 -s -r -p ""
	@ echo "> gitar ajoute * ; gitar engage -m commit1"
	@ cd test ; gitar -pm ajoute * ; gitar engage -m "commit1" 
	@ echo $(-e) ""

	@ read -n 1 -s -r -p ""
	@ echo "> gitar branche ciel"
	@ cd test ; gitar branche ciel
	@ echo $(-e) ""

#modifs dans la branche main
	@ read -n 1 -s -r -p ""
	@ echo $(-e) "> mv persil avoine ; gitar rm persil"
	@ echo $(-e) "> rm endive ; gitar rm endive"
	@ echo $(-e) "> echo "fromageblancbrassé" > salade"
	@ echo $(-e) "> echo -e "bcibzizuzkuxxqhqoxnxn izjncjdfhvbih \n cjzncuz" > menthe"
	@ echo $(-e) "> echo -e "babababababababababa \n eruniruv \n hdhdhdhdhdhdhdhd " > banane"
	@ cd test ; mv persil avoine ; gitar -pm supprime persil
	@ cd test ; rm endive ; gitar supprime endive
	@ cd test ; echo "fromageblancbrassé" > salade
	@ cd test ; echo -e "bcibzizuzkuxxqhqoxnxn izjncjdfhvbih \n cjzncuz" > menthe
	@ cd test ; echo -e "babababababababababa \n eruniruv \n hdhdhdhdhdhdhdhd " > banane
	@ echo $(-e) ""

	@ read -n 1 -s -r -p ""
	@ echo $(-e) "> gitar ajoute * ; gitar engage -m commit2"
	@ cd test ; gitar -pm ajoute * ; gitar engage -m commit2
	@ echo $(-e) ""

	@ read -n 1 -s -r -p ""
	@ echo $(-e) "> gitar bouge ciel"
	@ cd test ; gitar bouge ciel
	@ echo ""

#modifs dans la branche ciel
	@ read -n 1 -s -r -p ""
	@ echo $(-e) "> rm endive ; gitar supprime endive"
	@ echo $(-e) "> echo "ebvlrthbniejtnb jznckjnz \n bbdbdbd" > menthe"
	@ echo $(-e) "> touch banane ; echo "hbevhskljhniurf \n eruniruv \n hdhdhdhdhdhdhdhd \n zehbveiubvyierubv" > banane"
	@ echo $(-e) "> touch tomate ; echo "babababababababababa \n bfbfbfbfbf \n ihrbfierbqsviherb \n erbrberihbrehb " > tomate"
	@ cd test ; rm endive ; gitar supprime endive
	@ cd test ; echo "ebvlrthbniejtnb jznckjnz \n bbdbdbd" > menthe
	@ cd test ; touch banane ; echo "hbevhskljhniurf \n eruniruv \n hdhdhdhdhdhdhdhd \n zehbveiubvyierubv" > banane
	@ cd test ; touch tomate ; echo "babababababababababa \n bfbfbfbfbf \n ihrbfierbqsviherb \n erbrberihbrehb " > tomate
	@ echo $(-e) ""

	@ read -n 1 -s -r -p ""
	@ echo $(-e) "> gitar ajoute * ; gitar engage -m commit3"
	@ cd test ; gitar -pm ajoute * ; gitar engage -m commit3
	@ echo $(-e) ""



#la fusion des deux branches
	@ read -n 1 -s -r -p ""
	@ echo $(-e) "> gitar fusion"
	@ cd test ; gitar fusionne ciel main
	@ echo $(-e) ""

	@ read -n 1 -s -r -p ""
	@ echo $(-e) "> gitar historique"
	@ cd test ; gitar historique
	@ echo $(-e) ""






demo_diff_linux: gitar

	@ echo "Démonstration de diff"
	@ rm -r test ; gitar initialise test
# création de fichiers
	@ read -n 1 -s -r -p ""
	cd test ; echo -e "Bonjour.\nIl fait beau.\nMais,\nIl va pleuvoir ce soir" > meteo ; gitar ajoute meteo	
	@ read -n 1 -s -r -p ""
	cd test ; echo -e "Peut-etre de la neige." >> meteo ; gitar differencie meteo
	@ read -n 1 -s -r -p ""
	cd test ; echo -e "Bonjour.\nIl ne fait pas beau.\nMais,\nIl ne va pas pleuvoir ce soir\n" > meteo2 ; gitar ajoute meteo2
	@ read -n 1 -s -r -p ""
	cd test ; gitar differencie meteo meteo2
	@ read -n 1 -s -r -p ""
	cd test ; gitar differencie -a meteo meteo2
	@ read -n 1 -s -r -p ""
	cd test ; gitar differencie -s meteo meteo2
	@ read -n 1 -s -r -p ""
	cd test ; echo -e "Bonjour.\nIl fait beau.\nMais," > meteo_vieux ; gitar ajoute meteo_vieux
	@ read -n 1 -s -r -p ""
	cd test ; gitar differencie3 meteo_vieux meteo meteo2
	

demo_diff_mac: gitar

	@ echo "Démonstration de diff"
	@ rm -r test ; gitar initialise test
# création de fichiers
	@ read -n 1 -s -r -p ""
	cd test ; echo $(-e) "Bonjour.\nIl fait beau.\nMais,\nIl va pleuvoir ce soir" > meteo ; gitar ajoute meteo	
	@ read -n 1 -s -r -p ""
	cd test ; echo $(-e) "Peut-etre de la neige." >> meteo ; gitar differencie meteo
	@ read -n 1 -s -r -p ""
	cd test ; echo $(-e) "Bonjour.\nIl ne fait pas beau.\nMais,\nIl ne va pas pleuvoir ce soir\n" > meteo2 ; gitar ajoute meteo2
	@ read -n 1 -s -r -p ""
	cd test ; gitar differencie meteo meteo2
	@ read -n 1 -s -r -p ""
	cd test ; gitar differencie -a meteo meteo2
	@ read -n 1 -s -r -p ""
	cd test ; gitar differencie -s meteo meteo2
	@ read -n 1 -s -r -p ""
	cd test ; echo $(-e) "Bonjour.\nIl fait beau.\nMais," > meteo_vieux ; gitar ajoute meteo_vieux
	@ read -n 1 -s -r -p ""
	cd test ; gitar differencie3 meteo_vieux meteo meteo2
	

demo_distant: gitar

	@ rm -r test ; gitar initialise test
	@ echo "Démonstration des commandes distantes"
	@ read -n 1 -s -r -p "" 
	cd test ; echo "Bonjour à tous" > bonjour ; gitar -pm ajoute bonjour ; gitar engage -m "test_pousse"
	@ read -n 1 -s -r -p ""
	cd test ; gitar distance ajoute origin AhlameDouzal3@129.199.101.83:/Users/AhlameDouzal3/Desktop/Systemes_Exploitation/remote -c
	@ read -n 1 -s -r -p ""
	cd test ; gitar pousse 1500 origin --rend-distant
	@ read -n 1 -s -r -p ""
	cd /Users/AhlameDouzal3/Desktop/Systemes_Exploitation/remote/origin ; gitar -pm bouge main ; echo $(-e) "salut, comment ça va?" > salut ; gitar -pm ajoute salut ; gitar engage -m "sss"
	@ read -n 1 -s -r -p ""
	cd /Users/AhlameDouzal3/Desktop/Systemes_Exploitation/remote/origin ; gitar -pm bouge -b nouveau ; echo $(-e) "Ola" > ola ; gitar -pm ajoute ola ; gitar engage -m "ola"
	@ read -n 1 -s -r -p ""
	cd test ; gitar tire 1500 ; ls 
	@ read -n 1 -s -r -p ""
	cd test ; gitar branche ;
	@ read -n 1 -s -r -p ""
	cd test ; gitar bouge nouveau ; ls 
	@ read -n 1 -s -r -p ""
	cd test ; gitar distance supprime origin -d 


demo_distant_sven: gitar

	@ rm -r test ; gitar initialise test
	@ echo "Démonstration des commandes distantes"
	@ read -n 1 -s -r -p ""
	cd test ; echo -e "Bonjour à tous" > bonjour ; gitar -pm ajoute bonjour ; gitar engage -m "test_pousse"
	@ read -n 1 -s -r -p ""
	cd test ; gitar distance ajoute origin sven@129.199.101.128:/home/sven/Documents/ENS/os/remote -c
	@ read -n 1 -s -r -p ""
	cd test ; gitar pousse 1500 origin --rend-distant
	@ read -n 1 -s -r -p ""
	cd /home/sven/Documents/ENS/os/remote/origin ; gitar -pm bouge main ; echo -e "salut, comment ça va?" > salut ; gitar -pm ajoute salut ; gitar engage -m "sss"
	@ read -n 1 -s -r -p ""
	cd /home/sven/Documents/ENS/os/remote/origin ; gitar -pm bouge -b nouveau ; echo -e "Ola" > ola ; gitar -pm ajoute ola ; gitar engage -m "ola"
	@ read -n 1 -s -r -p ""
	cd test ; gitar tire 1500 ; ls
	@ read -n 1 -s -r -p ""
	cd test ; gitar branche ;
	@ read -n 1 -s -r -p ""
	cd test ; gitar bouge nouveau ; ls
	@ read -n 1 -s -r -p ""
	cd test ; gitar distance supprime origin -d


demo_ignore: gitar

	@ rm -r test ; gitar -pm initialise  test
	@ echo "Démonstration de ignore"
	@ read -n 1 -s -r -p ""
	cd test ; touch fichier ; gitar -pm statut 
	@ read -n 1 -s -r -p ""
	cd test ; echo fichier > .gitarignore ; gitar -pm statut
	@ read -n 1 -s -r -p ""
	cd test ; gitar -pm ajoute fichier
	@ read -n 1 -s -r -p ""
	cd test ; gitar -pm liste-fichiers ; gitar -pm commit -m "bonjour"

#### test de débug
run-command:
	@ read -n 1 -s -r -p "merge" ;
	echo 1 #commande
	@ read -n 1 -s -r -p "" ; echo "Exécution de la commande..." ; echo 2 #commande


test1: gitar
	@ rm -r test ; gitar init test ;
	@ cd test ; touch salade ; echo "zhevlizerhbrvivjnezv" > salade ; gitar add salade ; gitar commit -m "cmt salade" ;
	@ cd test ; gitar branch pied ; gitar checkout pied ;
	@ cd test ; touch endive ; echo "erljvnekvniejnverjkef" > endive ; gitar add endive ; gitar commit -m "cmt endive" ;
	@ cd test ; gitar branch oeil ; gitar checkout oeil ;
	@ cd test ; touch tomate ; echo "cfukbgfckngfkrbnrycnu" > tomate ; gitar add tomate ; gitar commit -m "cmt tomate" ;
	@ cd test ; gitar branch ; gitar log ;
	@ cd test ; gitar merge pied oeil 

.PHONY: gitar local clean test merge demo

