#!/bin/sh

# formatdir - Affiche le contenu d'un rpertoire sous une forme agrable
#   et pratique.

gmk()
{
# tant donnes des valeurs exprimes en Ko, les transforme en Ko, Mo,
#   ou Go selon les cas
if [ $1 -ge 1000000 ] ; then
  echo "$(scriptbc -p 2 $1 / 1000000) Go" 
elif [ $1 -ge 1000 ] ; then  
  echo  "$(scriptbc -p 2 $1 / 1000) Mo" 
else   
  echo "${1} Ko" 
fi 
}

if [ $# -gt 1 ] ; then 
  echo "Syntaxe: $0 [nom_rpertoire]" >&2; exit 1 
elif [ $# -eq 1 ] ; then 
  cd "$@" 
fi

for file in * 
do
  if [ -d "$file" ] ; then
    size=$(ls "$file" | wc -l | sed 's/[^[:digit:]]//g')
    if [ $size -eq 1 ] ; then
      echo "$file ($size entre)|"
    else
      echo "$file ($size entres)|"
    fi
  else
    size="$(ls -sk "$file" | awk '{print $1}')"  
    echo "$file ($(gmk $size))|" 
  fi
done | \
  sed 's/ /^^^/g'    | \
  xargs -n 2         | \
  sed 's/\^\^\^/ /g' | \
  awk -F\| '{ printf "%-39s %-39s\n", $1, $2 }'

exit 0
