#!/bin/sh
# DIR - se fait passer pour la commande DIR de DOS et liste le fichier 
#   spcifi, en reconnaissant certaines des options standards de DIR.

function usage 
{ 
cat << EOF >&2
  Syntaxe: $0 [options DOS] rpertoire ou rpertoires
  O:
   /D        trie par colonnes
   /H        donne l'aide pour ce script shell
   /N        sortie dtaille, avec le nom du fichier  droite 
   /OD       trie du plus ancien au plus rcent
   /O-D      trie du plus rcent au plus ancien
   /P        pause aprs chaque cran de texte
   /Q        montre le propritaire du fichier
   /S        parcourt rcursivement les rpertoires
   /W        sortie dtaille
EOF
  exit 1
}

postcmd=""
flags=""

while [ $# -gt 0 ] 
do
  case $1 in
    /D        ) flags="$flags -x"    ;;
    /H        ) usage                ;;
    /[NQW]    ) flags="$flags -l"    ;;
    /OD       ) flags="$flags -rt"   ;;
    /O-D      ) flags="$flags -t"    ;;
    /P        ) postcmd="more"       ;;
    /S        ) flags="$flags -s"    ;;
            * ) # drapeau inconnu: probablement une spcification de
                #   rpertoire
                break;  # sortons donc de la boucle while
  esac
  shift       # nous avons trait une option; passons  la suivante
done

# Nous avons fini de traiter les options; passons  la commande 
#   proprement parler:

if [ ! -z "$postcmd" ] ; then 
  ls $flags "$@" | $postcmd 
else 
  ls $flags "$@" 
fi

exit 0
