Salome HOME
bug : restriction : don't allow new name to contain old name.
[tools/hxx2salome.git] / scripts / renameSalomeModule
1 #!/bin/bash
2
3 usage()
4 {
5     echo
6     echo Usage :
7     echo "  renameSalomeModule  oldName newName dirModule"
8     echo
9     echo "  -> replace any occurence of oldName by newName in module dirModule"
10     echo 
11     echo "    (nex name cannot contain old name)"
12     echo
13     echo Example :
14     echo
15     echo "  cp -r HELLO_SRC CALCULATOR_SRC"
16     echo "  renameSalomeModule  HELLO CALCULATOR CALCULATOR_SRC"
17     echo
18     exit 1
19 }
20
21 rename_dir()
22 {
23     # Rename the first directory containing $oldName in their file name
24     liste=`find . -type d -name "*${oldName}*"`
25     for file in $liste
26     do
27         newFile=`echo $file | sed "s/${oldName}/${newName}/g"`
28         echo "mv -f $file $newFile"
29         mv -f $file $newFile
30         return 1
31     done
32     return 0
33 }
34
35 if [ "$1" == "-i" ]
36 then
37     # mode interactif
38     if [ $# -ne 4 ]
39     then
40         usage
41     fi
42     oldName=$2
43     newName=$3
44     moduleName=$4
45 else
46     if [ $# -ne 3 ]
47     then
48         usage
49     fi
50     oldName=$1
51     newName=$2
52     moduleName=$3
53 fi
54
55 # check names for restriction
56 echo $newName | grep $oldName > /dev/null
57 if [ $? -eq 0 ]
58 then
59     echo -e "Sorry : There is a restriction!\nNew name cannot contain old name.\n"
60     usage 
61 fi
62
63 today=`date +%d%m%y`
64
65 # Check arguments
66 if [ "$1" == "-i" ] # mode interactif
67 then
68     echo replace any occurence of $oldName by $newName in module $moduleName
69 else
70     clear
71     echo "Do you want to replace any occurence of $oldName by $newName in module $moduleName ?"
72     echo
73     read rep
74     case $rep in
75
76       y* | Y* | o* | O* )       ;;
77       * )                 usage ;;
78     esac
79 fi
80
81 cd ${moduleName}
82 echo
83 echo Renamed Directories:
84 echo
85
86 # rename directories one by one
87 rename_dir
88 while [ $? -eq 1 ]
89 do
90     rename_dir
91 done
92
93 # rename files containing ${oldName} in their name
94 echo
95 echo Renamed Files:
96 echo
97 liste=`find . -name "*${oldName}*"`
98 for file in $liste
99 do
100     newFile=`echo $file | sed "s/${oldName}/${newName}/g"`
101     echo "mv -f $file $newFile"
102     mv -f $file $newFile
103 done
104
105 echo
106 echo Modified Files:
107 echo
108 # modify all files containing $oldName, replace occurences by $newName
109 liste=`find -name "*"`
110 for file in $liste
111 do
112     if [ -f $file ]
113     then
114         grep $oldName $file > /dev/null 2>&1
115         if [ $? -eq 0 ]
116         then
117             echo $file
118             cat $file | sed "s/${oldName}/${newName}/g" > fic_temp_${today}
119             cp -f fic_temp_${today} $file
120         fi
121     fi
122 done
123 rm -f fic_temp_${today}
124 cd -