#!/bin/sh

# archivedir - Cre une archive compacte du rpertoire spcifi.

maxarchivedir=10        # taille, en blocs, d'un gros rpertoire
compress=gzip           #  remplacer par votre application de
                        #   compactage prfre
progname=$(basename $0)

if [ $# -eq 0 ] ; then 
  echo "Syntaxe: $progname <rpertoire>" >&2 ; exit 1 
fi

if [ ! -d $1 ] ; then 
  echo "${progname}: je ne trouve pas le rpertoire  archiver $1." >&2
  exit 1 
fi

if [ "$(basename $1)" != "$1" -o "$1" = "." ] ; then 
  echo "${progname}: vous devez spcifier un sous-rpertoire" >&2 
  exit 1
fi

if [ ! -w . ] ; then 
  echo "${progname}: je ne peux crire le fichier d'archive" >&2
  echo "    dans le rpertoire courant." >&2 
  exit 1
fi

dirsize="$(du -s $1 | awk '{print $1}')"

if [ $dirsize -gt $maxarchivedir ] ; then 
  echo -n "Avertissement: le rpertoire $1 fait $dirsize blocs. Continuer? [n] " 
  read answer 
  answer="$(echo $answer | tr '[:upper:]' '[:lower:]' | cut -c1)" 
  if [ "$answer" != "o" ] ; then
    echo "${progname}: annulation de l'archivage du rpertoire $1." >&2  
    exit 0 
  fi 
fi

archivename="$(echo $1 | sed 's/$/.tgz/')"

if tar cf - $1 | $compress > $archivename ; then 
  echo "Rpertoire $1 archiv sous le nom $archivename" 
else 
  echo "Avertissement: tar a eu des problmes en archivant $1" 
fi

exit 0
