#!/bin/sh

# Par Julien MOREAU	( jmoreau@bigfoot.com )

lim=30				# Limite par défaut pour option -p
nbps=1				# Nombre de paramêtres souhaités (sans option)
bold=`tput bold`		# Pour mettre en gras
dlob=`tput rmso`		# Pour désactiver le gras
nom_cmde=`basename $0`		# Nom de la commande
usage="Usage: $nom_cmde [-k|-m|-p [limite]] [repertoire]" # Message d'aide
usage=$usage"\n  Donne la taille mémoire de votre compte ou d'un répertoire."
usage=$usage"\n\tOption -k : seule la taile en ko sera affiche."
usage=$usage"\n\tOption -m : seule la taile en Mo sera affiche."
usage=$usage"\n\tOption -p : à utiliser dans le .profile ; n'affiche qqch"
usage=$usage"\n\t\tque lorsque le compte dépasse la limite (en Mo)."
usage=$usage"\n\t\tLa valeur limite par défaut est de $lim Mo."
usage=$usage"\n\tOption -h : Affiche ce message d'aide."

if test `uname` != "HP-UX" ; then e="-e" ; fi

#if test "$1" = "-k" -o "$1" = "-m" -o "$1" = "-p" ; then opt=$1 ; shift ; fi
case "$1" in
	"-k") opt=k ; shift ;;
	"-m") opt=m ; shift ;;
	"-p") opt=p ; shift ;;
	"-h") opt=h ; shift ;;
esac
if [ "$opt" = "p" -a $# -ge 1 ] ; then lim=$1 ; shift ; fi

if [ $# -gt $nbps -o "$opt" = "h" ] ; then
	echo $e $usage 1>&2 ; exit 2
fi

rep=~ ; cible="de votre compte"
if [ $# -ge 1 ] ; then rep=$1 ; cible="du répertoire \"$rep\"" ; fi
if [ "$rep" = "." ] ; then cible="du répertoire courant" ; fi
lim=`expr $lim \* 1024`			# Limite en ko
tdu=`/bin/du -s $rep 2> /dev/null|cut -f1`	# Taille en block de 512 octets
tko=`expr $tdu / 2`			# Taille en ko
if test "$opt" = "p" -a "$tko" -lt "$lim" ; then exit 0 ; fi
if test "$opt" = "p" ; then echo $e " *** Attention : \c" ; fi
if test "$opt" = "k" ; then echo "$tko" ; exit 0 ; fi
if test "$opt" != "m" ; then
	echo $e "La taille $cible est de : \c"
fi

nbdko=`echo $tko|wc -c`
nbdko=`expr $nbdko - 1`			# Nb de digits dans tko
if [ "$nbdko" -le 3 ] ; then tko="00$tko" ; nbdko=`expr $nbdko + 2` ; fi

nbdmo=`expr "$nbdko" - 3`		# Nb de digits pour les Mo
moe=`echo $tko|cut -c-$nbdmo`		# Partie entière des Mo
nbdemo=`expr $nbdko - 2`		# Nb de digits pour la partie entière
mod=`echo $tko|cut -c$nbdemo-`		# Partie décimal des Mo
#echo $e "\ntko=$tko\tnbdko=$nbdko\tmoe=$moe\tnbdemo=$nbdemo\tmod=$mod"

if test "$opt" = "m" ; then
	echo "$moe.$mod"
else
	echo "$moe.$mod Mo."
	if test "$opt" != "p" ; then
	 echo "Utilisez l'option -h pour avoir de l'aide sur cette commande."
	 echo "${bold}Pour vous aider à faire de la place sur votre compte,"
	 echo $e " vous pouvez utiliser le script \"clean\".${dlob}"
	fi
fi

exit 0		# Sortie sans erreur