#!/bin/bash

# Par Julien MOREAU	( jmoreau@bigfoot.com )

nbps=1				# Nombre de paramètres souhaités
nom_cmde=`basename $0`		# Nom de la commande
usage="Usage: $nom_cmde [-n] [-d <destination>] <filename> [...]"   # Aide
usage=$usage"\n\tConcatène des fichiers en mettant leur titre entre chaque."
usage=$usage"\n\tPratique pour faire un seul fichier de plusieurs"
usage=$usage"\n\t et éventuellement l'envoyer par e-mail ou sur imprimante."
usage=$usage"\n\tL'option -n fait sauter une ligne après chaque fichier."
usage=$usage"\nExemples:\t$nom_cmde ex?|a2ps\tou\t$nom_cmde *|lp\tou encore"
usage=$usage"\n\t\t$nom_cmde *.c|mailx -s \"Mes sources C\" login"

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

sepa="***************"		# 15
#sepa=$sepa$sepa

if test "$1" = "-n" ; then opt="n$opt" ; shift ; fi

if test "$1" = "-d" ; then
	if [[ -a $2 ]] ; then
		echo "Fichier destination déjà existant !" 1>&2 ; exit 2
	fi
	dest=$2 ; shift 2
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

set $*
if test -n "$dest" ; then exec >> $dest ; fi

for fichier in $* ; do
	fic=`basename $fichier`
	if test "$fichier" = "$dest" ; then
		echo "*** $fichier dans destination et source !" 1>&2
	else
		if test ! -r $fichier ; then
			echo "*** $fichier : fichier illisible !" 1>&2
		else
			echo "$sepa $fic $sepa"
			cat $fichier
			if test -n "$opt" ; then echo ; fi
		fi
	fi
done

exit 0		# Sortie sans erreur

