#!/bin/sh

# Par Julien MOREAU	( jmoreau@bigfoot.com )

nbps=1				# Nombre de paramètres souhaités (sans option)
dest=genie			# Nom de l'imprimante
cmdv=lpstat			# Commande de vérification de requête
nom_cmde=`basename $0`		# Nom de la commande
usage="Usage: $nom_cmde <filename ...>"		# Message d'aide
usage=$usage"\n\tImprime des fichiers selon l'imprimante dont nous disposons."

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

if [ $# -lt $nbps ] ; then	# Si le nombre de paramètres est incorrecte,
	echo $e $usage 1>&2 ; exit 2	# Affichage aide puis arrêt.
fi

MACHINE=`hostname | sed 's/\..*//'`     # le nom de la machine (sans domaine)
export MACHINE

#if [ "$MACHINE" = "romuald" ] ; then
	#echo "Depuis la semaine du lundi 20 mars, ..." 1>&2
	#echo "Il faut RETOURNER sur athanase pour pouvoir imprimer !" 1>&2
	#exit 1
#fi

nbllim=30			# Nombre de lignes limite pour warning
nblpcol=66			# Nombre de lignes par colonne
nbcolpf=4			# Nombre de colonnes par feuille
nblpf=`expr $nblpcol \* $nbcolpf` # Nombre de lignes par feuille

liste=""
error=0
for fic in $* ; do
	if test ! -r $fic ; then
		echo "$fic: fichier illisible !" 1>&2 ; error=1	# exit 5
	else
		file $fic|grep -q -e text -e data
		if [ $? -eq 0 ] ; then
			liste="$liste $fic"
		else
			echo "$fic: ce fichier ne contient pas de texte !" 1>&2
			error=2
		fi
	fi
done
if [ $error -eq 1 ] ; then
	echo $e "\nListe des fichiers gardés :\n  $liste\n"
fi

if [ $# -gt 1 ] ; then
	tmp="$HOME/_`basename $PWD`_"	# Nom du fichier temporaire
	if test -s $tmp ; then
		echo "$tmp : fichier déjà existant !" 1>&2 ; exit 3
	fi

	echo "Concaténation des fichiers ... \c"
	concatf $liste > $tmp ; ret=$?	# Création du fichier temporaire
	if [ $ret -eq 0 ] ; then
		echo "OK."
	else
		echo "échec ($ret) !" ; rm -f $tmp ; exit $ret
	fi
	fic=$tmp
else
	fic=$1
fi

nbl=`wc -l $fic|cut -d' ' -f1`
echo "Nombres de lignes total : $nbl."

nbp=`expr $nbl / $nblpf`
nbp=`expr $nbp + 1`
echo $e "Nombres de page(s) : \c"
tput smso
 echo $e " $nbp \c"
tput rmso
echo "."

nbllc=`expr $nbl % $nblpcol`
# echo "Nombres de lignes sur la dernière colonne : $nbllc."

nbllp=`expr $nbl % $nblpf`
echo "Nombres de lignes sur la dernière feuille : $nbllp."

if [ $nbllp -le $nbllim ] ; then
	echo "> Seules $nbllp lignes seront imprimées sur la derniere page !"
	ouinon "Souhaitez-vous continuer"
	if [ $? -ne 0 ] ; then rm -f $tmp ; exit 1 ; fi
fi

echo "Lancement de la requête d'impression ..."
#lp -d$dest $fic ; ret=$?	# On l'imprime
#a2ps -P $dest $fic ; ret=$?	# On l'imprime
a2ps -P $dest -B --print-anyway --sides=2 $fic ; ret=$?	# On l'imprime

echo $e "Valeur de retour = $ret. Résultat d'un \"$cmdv\" :" ; $cmdv

if [ $# -le 1 ] ; then exit $ret ; fi	# On peut s'arrêter là, sinon :

echo $e "Destruction du fichier temporaire ... \c"
rm -f $fic ; ret=$? ; if [ $ret -eq 0 ] ; then echo "OK." ; fi

exit $ret

