#!/bin/bash

: ${USRLOCAL="${HOME}/Applications"}    # local software directory
: ${JML4DIR="${USRLOCAL}/JML4c"}  # local home of jml4c

echo "Installation de JML4c dans votre répértoire ${JML4DIR}:"

if [[ -d "${JML4DIR}" ]]
then
	echo "Le répertoire ${JML4DIR} existe."
else
	echo -n "Création du répertoire: " "${JML4DIR}" "..."
	if mkdir -p "${JML4DIR}"
	then echo "fait."
	else echo "echec."
	fi
fi

if [[ -d "${USRLOCAL}/bin" ]]
then 
	echo "Le répertoire ${USRLOCAL}/bin existe."
else
	echo -n "Création du répertoire: " "${USRLOCAL}/bin" "..."
	if mkdir -p "${USRLOCAL}/bin"
	then echo "fait."
	else echo "échec."
	fi
fi

echo "Installation des fichiers jar:"
for jarfile in *.jar
do
	if [[ -f "${JML4DIR}/${jarfile}" ]]
	then echo "Fichier ${jarfile} en place."
	else
		if [[ -f $jarfile ]]
		then 
			echo -n "Copie du fichier ${jarfile} dans le répertoire: ${JML4DIR} ..."
			if mv $jarfile "${JML4DIR}"
			then echo "fait."
			else echo "échec."
			fi
		else
			echo "Le fichier ${jarfile} est absent du répertoire courant."
		fi
	fi
done
echo "Installation des fichiers jar terminée."

echo "Installation des scripts shell:"
for shellscript in *.sh
do
	if [[ -f "${JML4DIR}/${shellscript}" ]]
	then echo "Fichier ${shellscript} en place."
	else
		if [[ -f $shellscript ]]
		then 
			echo -n "Copie du fichier ${shellscript} dans le répertoire: ${JML4DIR} ..."
			if mv $shellscript "${JML4DIR}"
			then echo "fait."
			else echo "échec."
			fi
		else
			echo "Le fichier ${shellscript} est absent du répertoire courant."
		fi
	fi
done
echo "Installation des scripts shell terminée."

echo "Création de liens symboliques pour les exécutables dans le répertoire: ${USRLOCAL}/bin"
for shellscript in ${JML4DIR}/*.sh
do
	radical="${shellscript##*/}"
	destlink="${radical/%.sh/}"
	echo -n "Création du lien symbolique ${USRLOCAL}/bin/${destlink} vers ${shellscript} ..."
	if ln -s "${shellscript}" "${USRLOCAL}/bin/${destlink}"
	then echo "fait."
	else echo "echec."
	fi
done
echo "Création des liens symboliques terminée."

if [[ $PATH == *${USRLOCAL}/bin* ]]
then
	echo "Votre variable PATH est correcte."
else
	echo -n "Mise à jour du fichier .bashrc ..."
	if [[ -f "${HOME}/.bashrc.prejml" ]]
	then echo " La mise à jour a déjà été effectuée, pensez à recharger votre .bashrc (commande source ${HOME}/.bashc"
	else
		mv "${HOME}/.bashrc" "${HOME}/.bashrc.prejml"
		cat "${HOME}/.bashrc.prejml" bashrc.tmpjml > "${HOME}/.bashrc"
		source "${HOME}/.bashrc"
		echo "fait."
	fi
fi

echo "Installation terminée."
echo "Vous disposez maintenant des nouvelles commandes suivantes:"
echo "	- jml4c pour compiler du code source java contenant des assertions JML"
echo "	- jml4 pour exécuter un programme java compilé à l'aide de la commande jml4c"
echo "		avec activation du contrôle des assertions"
echo "	- jmlunitNG pour la production de classes de test unitaire à partir des classes contenant des assertions JML"
echo "	- jmlunitNGc pour compiler les classes de test"
echo "	- jmlunitNGrun pour exécuter les tests"
