File indexing completed on 2024-04-21 05:41:57

0001 #!/bin/sh
0002 
0003 if [ $# != 2 ]; then
0004     echo "Usage: $0 old_classname new_classname"
0005     exit 1
0006 fi
0007 
0008 oldname=$1
0009 newname=$2
0010 
0011 if [ -f $oldname.cpp ]; then
0012     oldfile=$oldname
0013     newfile=$newname
0014 else
0015     oldfile=`echo $oldname | tr A-Z a-z`
0016     newfile=`echo $newname | tr A-Z a-z`
0017 fi
0018 
0019 if [ ! -f $newfile.h ]; then
0020     echo "Copying $oldfile.{cpp,h} to $newfile.{cpp,h}"
0021     cp $oldfile.h $newfile.h
0022     cp $oldfile.cpp $newfile.cpp
0023     if [ -f ${oldfile}_p.h ]; then
0024         cp ${oldfile}_p.h ${newfile}_p.h
0025     fi
0026     if [ -f ${oldfile}.ui ]; then
0027         echo "Copying $oldfile.ui to $newfile.ui"
0028         cp ${oldfile}.ui ${newfile}.ui
0029     fi
0030 
0031     git add $newfile.h
0032     git add $newfile.cpp
0033     if [ -f ${newfile}_p.h ]; then
0034         git add ${newfile}_p.h
0035     fi
0036     if [ -f ${newfile}.ui ]; then
0037         git add ${newfile}.ui
0038     fi
0039 fi
0040 
0041 # Update build system
0042 if test -f CMakeLists.txt; then
0043     buildsystemfile=CMakeLists.txt
0044     separator=
0045 else
0046     buildsystemfile=`ls -1 *.pro 2>/dev/null | head -n 1`
0047     separator=' \\'
0048 fi
0049 if test -n "$buildsystemfile"; then
0050     perl -pi -e '$_ .= "$1'$newfile.cpp"$separator"'\n" if (m/^(\s*)'$oldfile'\.cpp/)' $buildsystemfile
0051     perl -pi -e '$_ .= "$1'$newfile.h"$separator"'\n" if (m/^(\s*)'$oldfile'\.h/)' $buildsystemfile
0052     perl -pi -e '$_ .= "$1'$newfile.ui"$separator"'\n" if (m/^(\s*)'$oldfile'\.ui/)' $buildsystemfile
0053 fi
0054 
0055 # Rename class
0056 perl -pi -e "s/$oldname/$newname/g" $newfile.h $newfile.cpp
0057 if [ -f ${newfile}_p.h ]; then
0058     perl -pi -e "s/$oldname/$newname/g" ${newfile}_p.h
0059 fi
0060 if [ -f ${newfile}.ui ]; then
0061     perl -pi -e "s/$oldname/$newname/g" ${newfile}.ui
0062 fi
0063 
0064 oldinclguard=`echo $oldname | tr a-z A-Z`
0065 newinclguard=`echo $newname | tr a-z A-Z`
0066 
0067 # Update include guard
0068 perl -pi -e "s/$oldinclguard/$newinclguard/g" $newfile.h
0069 
0070 # Update includes in cpp file
0071 perl -pi -e 's/\b'$oldfile'\.h/'$newfile'\.h/' $newfile.cpp
0072 perl -pi -e 's/\b'$oldfile'\.moc/'$newfile'\.moc/' $newfile.cpp
0073