#!/bin/sh
# inpath - Vrifie qu'un programme donn existe en tant que tel,
#   ou se trouve dans la liste de rpertoires du PATH.

in_path()
{
  # tant donn une commande et le PATH, cherche la commande. Renvoie
  # 0 si elle est trouve et excutable, 1 dans le cas contraire.
  # Attention! Ceci modifie temporairement l'IFS (le sparateur de champs
  # en entre) mais le remet en place  la fin.

  cmd=$1  path=$2 retval=1
  oldIFS=$IFS   IFS=":"

  for directory in $path
  do
    if [ -x $directory/$cmd ] ; then
      retval=0 # si nous en sommes l, nous avons trouv $cmd dans $directory
    fi
  done
  IFS=$oldIFS
  return $retval
}

checkForCmdInPath() { 
  var=$1

  # Expliquons la notation de dcoupage de variable dans la
  # conditionnelle suivante: ${var#expr} renvoie tout ce qui suit
  # la portion de chane correspondant au motif 'expr' dans la 
  # valeur de la variable (si ce motif est reconnu), et 
  # ${var%expr} renvoie tout ce qui ne correspond pas (dans le cas
  # prsent, il s'agit du seul premier caractre). On peut encore
  # procder en Bash en crivant ${var:0:1}, ainsi que faire appel 
  # cut: cut -c1.

  if [ "$var" != "" ] ; then  
    if [ "${var%${var#?}}" = "/" ] ; then 
      if [ ! -x $var ] ; then 
        return 1 
      fi
    elif ! in_path $var $PATH ; then 
     return 2
    fi
  fi
}
