#!/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 " # 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