#!/bin/bash
#  procedura che cerca un file in modo ricorsivo,
#  a partire da una directory data. 
#  

#set -e -v 

thisprog="` realpath $0 `"    # trovo il nome con tutto il path 
#echo " cerco $2 in $1 , con:$0  $thisprog " 

# controllo degli argomenti : 

case $# in 
  0|1)  echo " Errore, dare directory e stringa da carcare "
        exit 1 ;;
  2)   if test ! -d $1 ; then 
          echo " Errore, il parametro 1 deve essere una directory "
          exit 2  
       fi  
       if test ! $2  ; then      # una stringa non nulla e' vera       
          echo " Errore nella stringa da cercare "
          exit 3 
       fi  ;; 
  *)  echo " Errore, servono solo: directory e stringa da carcare  "
        exit 4 ;;       
esac 


cd $1 
#echo " vado in `pwd` " 

for i in *  ; do 
#  echo " esame file :$i "

  if [ -f $i ] ; then 
#     echo " is a regular file "
     case $i in 
       *$2*)  echo " file found: `pwd`/$i "
              if [ -r $i ] ; then echo "      readable " ; fi 
	      if [ -w $i ] ; then echo "      writable " ; fi 
	      if [ -x $i ] ; then echo "      executable " ; fi 
	      ;;
	      
     esac 
  elif [ -d $i ] ; then 
#     echo " is a directory " 
     case $i in 
        *$2*)       
        echo " directory found: `pwd` $i "
	echo "     dir content: "
	echo "--------------"	      
        ls $i 
	echo "--------------"
	;;
     esac 
     $thisprog $i $2 
  fi 
done           	
