Salome HOME
Windows compatibility.
[modules/yacs.git] / rfind
1 #! /bin/sh
2 # Copyright (C) 2006-2016  CEA/DEN, EDF R&D
3 #
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License, or (at your option) any later version.
8 #
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 # Lesser General Public License for more details.
13 #
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
17 #
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 #
20
21 # --
22 # Author : Erwan ADAM (CEA)
23 # --
24
25 #
26 # Usage : rfind dir suffix ...
27
28 # find all files *suffix in dir in a recursive way
29 # different of the usual command find ...
30 #
31
32 if test $# != 2 ; then
33     echo "Usage : $0 dir suffix"
34     exit
35 fi
36
37 local_find() {
38     # if the first argument is not a directory, returns
39     if test ! -d $1 ; then 
40         # echo "$1 is not a directory"
41         return 
42     fi
43     # dont look in the CVS directories
44     # dont look in the autom4te* directories
45     case "$1" in
46         */CVS) return ;;
47         */autom4te*) return ;;
48         */*_ROOT) return ;;
49         */*_SRC) return ;;
50         *) ;;
51     esac
52     # for each regular file contained in the directory
53     # test if it's a *"$2" file
54     for i in $1/*
55     do
56         if test -f $i ; then
57             case `basename $i` in 
58                 *$2) echo "     "$i ;;
59                 *) ;;
60             esac
61         fi
62     done
63     # for each subdirectory of the first argument, proceeds recursively
64     for i in $1/*
65     do
66         local_find $i $2
67     done
68 }
69
70 local_find $1 $2