replacev2.sh: replace V2 classes and methods

This commit is contained in:
Juergen E. Fischer 2016-08-06 10:39:42 +02:00
parent d5516fa7e3
commit 8a4574436f
3 changed files with 46 additions and 2 deletions

View File

@ -26,7 +26,7 @@ class QgsGeometryCollectionV2: public QgsAbstractGeometryV2
*/
QgsAbstractGeometryV2* geometryN( int n );
//methods inherited from QgsAbstractGeometry
//methods inherited from QgsAbstractGeometryV2
virtual int dimension() const;
virtual QString geometryType() const;
virtual void clear();

44
scripts/replacev2.sh Executable file
View File

@ -0,0 +1,44 @@
#!/bin/bash
set -e
codepaths=$(echo python/{analysis,console,core,custom_widgets,gui,networkanalysis,plugins,pyplugin_installer,server,sip_helpers,testing} src/ tests/)
repl=
s=$(mktemp -t skipped.XXXX.log)
r=$(mktemp -t repl.XXXX.pl)
d=$(mktemp -t apibreak.XXXX.txt)
# Rename classes
for i in $(git --no-pager grep "Qgs[a-zA-Z0-9_]*V2" $codepaths | perl -pe 's#^.*(Qgs[a-zA-Z0-9_]*)V2([a-zA-Z0-9_]*).*$#$1V2$2#' | sort -u)
do
src=$i
dst=${src/V2/}
if git --no-pager grep -l "\<$dst\>" $codepaths; then
echo "$src vs $dst" >>$s
else
echo " REPLACE $src => $dst"
echo "s/\b$src\b/$dst/g;" >>$r
echo "s/\bsipType_$src\b/sipType_$dst/;" >>$r
echo "<tr><td>$src<td>$dst" >>$d
fi
done
for i in $(git --no-pager grep "::[a-zA-Z0-9_]*V2" $codepaths | perl -pe 's#^.*::([a-zA-Z0-9_]*)V2([a-zA-Z0-9_]*).*$#$1V2$2#' | egrep -v "^Qgs|SslV2" | sort -u)
do
src=$i
dst=${src/V2/}
if git --no-pager grep -l "\<$dst\>" $codepaths; then
echo "$src vs $dst" >>$s
else
echo " REPLACE $src => $dst"
echo "s/\b$src\b/$dst/g;" >>$r
echo "<tr><td>$src<td>$dst" >>$d
fi
done
echo "API breaks logged to: $d"
echo "Skipped V2 symbols: $s"
echo "Replacing from $r"
find $codepaths -type f | xargs perl -i -p $r

View File

@ -50,7 +50,7 @@ class CORE_EXPORT QgsGeometryCollectionV2: public QgsAbstractGeometryV2
*/
QgsAbstractGeometryV2* geometryN( int n );
//methods inherited from QgsAbstractGeometry
//methods inherited from QgsAbstractGeometryV2
virtual int dimension() const override;
virtual QString geometryType() const override { return "GeometryCollection"; }
virtual void clear() override;