mirror of
https://github.com/mangosfour/server.git
synced 2025-12-12 10:37:03 +00:00
[c12561] Escape some file names in the cleanupStyle helper script
This commit is contained in:
parent
7fec4dacae
commit
d988eb4038
2 changed files with 204 additions and 1 deletions
203
contrib/cleanupTools/cleanupStyle.sh
Normal file
203
contrib/cleanupTools/cleanupStyle.sh
Normal file
|
|
@ -0,0 +1,203 @@
|
|||
#!/bin/sh
|
||||
|
||||
# SUPPORTED: ASTYLE COMMENT_STYLE OVERRIDE_CORRECTNESS
|
||||
# ASTYLE <- runs AStyle
|
||||
# COMMENT_STYLE <- converts //bla to // bla (note, // Bla might be better, but this would conflict with code (at least)
|
||||
# Use at own Risk:
|
||||
# OVERRIDE_CORRECTNESS[2] <- Appends override correctness (add 2 for second pass)
|
||||
|
||||
# Do config stuff
|
||||
sh "${0%/*}/cleanupToolConfig.sh"
|
||||
if [ "$?" != "0" ]
|
||||
then
|
||||
echo "You need to edit the configuration file before you can use this tool!"
|
||||
echo "Configuration file: ${0%/*}/cleanupTools.config"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# And use config settings
|
||||
. "${0%/*}/cleanupTools.config"
|
||||
|
||||
|
||||
## Internal Stuff
|
||||
|
||||
# Mangos Cleanup options for AStyle
|
||||
OPTIONS="--convert-tabs --align-pointer=type --suffix=none \
|
||||
--keep-one-line-blocks --keep-one-line-statements \
|
||||
--indent-classes --indent-switches --indent-namespaces \
|
||||
--pad-header --unpad-paren --pad-oper --style=allman"
|
||||
|
||||
if [ "$DO_ON" = "MANGOS_SRC" ]
|
||||
then
|
||||
FILEPATH=$BASEPATH/src
|
||||
OPTIONS="$OPTIONS --exclude=ScriptDev2"
|
||||
elif [ "$DO_ON" = "MANGOS_CONTRIB" ]
|
||||
then
|
||||
FILEPATH=$BASEPATH/contrib
|
||||
elif [ "$DO_ON" = "MANGOS_WHOLE" ]
|
||||
then
|
||||
FILEPATH=$BASEPATH
|
||||
OPTIONS="$OPTIONS --exclude=ScriptDev2"
|
||||
elif [ "$DO_ON" = "SD2" ]
|
||||
then
|
||||
FILEPATH=$BASEPATH/src/bindings/ScriptDev2
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
OPTIONS="$OPTIONS --recursive"
|
||||
|
||||
####################################################################################################
|
||||
## USING ASTYLE UPDATING ##
|
||||
####################################################################################################
|
||||
if [ $DO = ASTYLE ]
|
||||
then
|
||||
echo "Process $FILEPATH with options $MOPTIONS"
|
||||
$ASTYLE $OPTIONS "$FILEPATH/*.cpp" "$FILEPATH/*.h"
|
||||
|
||||
#Restore style of auto-generated sql-files
|
||||
if [ "$DO_ON" = "MANGOS_SRC" -o "$DO_ON" = "MANGOS_WHOLE" ]
|
||||
then
|
||||
if [ -f "$BASEPATH/src/shared/revision_nr.h" ]
|
||||
then
|
||||
sed 's/^#define REVISION_NR/ #define REVISION_NR/g' < ${BASEPATH}/src/shared/revision_nr.h > temp
|
||||
mv temp "$BASEPATH/src/shared/revision_nr.h"
|
||||
fi
|
||||
if [ -f "$BASEPATH/src/shared/revision_sql.h" ]
|
||||
then
|
||||
sed 's/^#define REVISION_DB/ #define REVISION_DB/g' < ${BASEPATH}/src/shared/revision_sql.h > temp
|
||||
mv temp "$BASEPATH/src/shared/revision_sql.h"
|
||||
fi
|
||||
elif [ "$DO_ON" = "SD2" ]
|
||||
then
|
||||
if [ -f "$BASEPATH/src/bindings/ScriptDev2/sd2_revision_nr.h" ]
|
||||
then
|
||||
sed 's/^#define SD2_REVISION_NR/ #define SD2_REVISION_NR/g' < ${BASEPATH}/src/bindings/ScriptDev2/sd2_revision_nr.h > temp
|
||||
mv temp "$BASEPATH/src/bindings/ScriptDev2/sd2_revision_nr.h"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Processing $DO on $DO_ON done"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
||||
####################################################################################################
|
||||
## UNIFYING COMMENTS ##
|
||||
####################################################################################################
|
||||
## Make comments neater //bla => // bla ## note for uppercase s:\// \([a-z]\):// \1:g
|
||||
if [ $DO = COMMENT_STYLE ]
|
||||
then
|
||||
if [ "$DO_ON" = "MANGOS_SRC" ]
|
||||
then
|
||||
LIST=`find ${BASEPATH}/src/ -path "${BASEPATH}/src/bindings/ScriptDev2" -prune -o -type f -iname "*.cpp" -print -o -iname "*.h" -print `
|
||||
elif [ "$DO_ON" = "SD2" ]
|
||||
then
|
||||
LIST=`find ${BASEPATH}/src/bindings/ScriptDev2 -type f -iname "*.cpp" -o -iname "*.h" `
|
||||
else
|
||||
echo "Unsupported combination with DO and DO_ON"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for l in $LIST
|
||||
do
|
||||
echo "Converting comments in $l"
|
||||
sed '/http:/ !s:\//\([a-zA-Z0-9]\):// \1:g;
|
||||
s#^\(............................................................\) [ ]*//#\1//#g;
|
||||
/^..............................................\/[\/]*$/ !s#^\(..................................................\)//#\1 //#g; ' "$l" > temp
|
||||
if [ "$?" != "0" ]
|
||||
then
|
||||
echo "An error HAPPENED"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mv temp "$l"
|
||||
done
|
||||
|
||||
echo "Processing $DO on $DO_ON done"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
####################################################################################################
|
||||
## OVERRIDE CORRECTNESS ##
|
||||
####################################################################################################
|
||||
# use OVERRIDE_CORRECTNESS to create helper file listing all virtual methods
|
||||
# use OVERRIDE_CORRECTNESS2 to add the word "override" after all functions with virtual names
|
||||
|
||||
if [ "$DO_ON" != "MANGOS_SRC" -a "$DO_ON" != "SD2" ]
|
||||
then
|
||||
echo "OVERRIDE atm only supported for MANGOS_SRC or SD2 target"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ $DO = OVERRIDE_CORRECTNESS ]
|
||||
then
|
||||
#Create a list of all virtual functions in mangos (class scope)
|
||||
if [ $DO_ON = MANGOS_SRC ]
|
||||
then
|
||||
HEADERLIST=`find ${BASEPATH}/src/ -path "${BASEPATH}/src/bindings/ScriptDev2" -prune -o -type f -iname "*.h" -print`
|
||||
else
|
||||
HEADERLIST=`find ${BASEPATH}/src/bindings/ScriptDev2 -type f -iname "*.h"`
|
||||
HEADERLIST="${HEADERLIST} ${BASEPATH}/src/game/CreatureAI.h"
|
||||
HEADERLIST="${HEADERLIST} ${BASEPATH}/src/game/InstanceData.h"
|
||||
fi
|
||||
|
||||
rm virtuals
|
||||
for h in $HEADERLIST
|
||||
do
|
||||
grep "virtual" "$h" >> virtuals
|
||||
done
|
||||
|
||||
#Filter comment lines
|
||||
sed -n '/^[ ]*\/\// !p' virtuals | sed -n '/^[ ]*\/\*/ !p' | \
|
||||
##Get function name
|
||||
sed -r -n '/^[ ]*virtual[ ][ ]*const[\*]*[ ][ ]*[a-zA-Z_~0-9\*:&]*[ ][ ]*const[\*]*[ ][]*[a-zA-Z_~0-9]*[ ]*\(.*\)/ { s/^[ ]*virtual[ ]*const[ ]*[a-zA-Z_~0-9\*:]*[ ]*const[ ]*([a-zA-Z_~0-9]*).*/\1/g; tEnde}
|
||||
/^[ ]*virtual[ ][ ]*const[\*]*[ ][ ]*[a-zA-Z_~0-9\*:&]*[ ][ ]*[a-zA-Z_~0-9]*[ ]*\(.*\)/ { s/^[ ]*virtual[ ]*const[ ]*[a-zA-Z_~0-9\*:]*[ ]*([a-zA-Z_~0-9]*).*/\1/g; tEnde}
|
||||
/^[ ]*virtual[ ][ ]*[a-zA-Z_~0-9\*:&]*[ ][ ]*const[\*]*[ ][ ]*[a-zA-Z_~0-9]*[ ]*\(.*\)/ { s/^[ ]*virtual[ ]*[a-zA-Z_~0-9\*:]*[ ]*const[\*]*[ ]*([a-zA-Z_~0-9]*).*/\1/g; tEnde}
|
||||
/^[ ]*virtual[ ]*[a-zA-Z_~0-9\*:&]*[ ][ ]*[a-zA-Z_~0-9]*[ ]*\(.*\)/ { s/^[ ]*virtual[ ]*[a-zA-Z_~0-9\*:]*[ ][ ]*([a-zA-Z_~0-9]*).*/\1/g;}
|
||||
:Ende; p' > virtualNames
|
||||
|
||||
##Make its entries unique
|
||||
sort < virtualNames > virtuals
|
||||
uniq < virtuals > virtualNames
|
||||
|
||||
echo "Check file virtualNames for inconsitencies!"
|
||||
rm virtuals
|
||||
|
||||
echo "Processing $DO on $DO_ON done"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ $DO = OVERRIDE_CORRECTNESS2 ]
|
||||
then
|
||||
## Assume virtualNames is good
|
||||
if [ $DO_ON = MANGOS_SRC ]
|
||||
then
|
||||
FILELIST=`find ${BASEPATH}/src/ -path "${BASEPATH}/src/bindings/ScriptDev2" -prune -o -type f -iname "*.h" -print`
|
||||
else
|
||||
FILELIST=`find ${BASEPATH}/src/bindings/ScriptDev2 -type f -iname "*.cpp" -o -iname "*.h"`
|
||||
fi
|
||||
|
||||
for h in $FILELIST
|
||||
do
|
||||
echo "Progress file $h"
|
||||
while read f
|
||||
do
|
||||
# basic pattern: NAME(..)...[;]
|
||||
PARSE="s/( "$f"\(.*\)[ ]*const[\*]*);/\1 override;/g; t
|
||||
s/( "$f"\(.*\));/\1 override;/g; t
|
||||
s/( "$f"\(.*\)[ ]*const[\*]*)$/\1 override/g; t
|
||||
s/( "$f"\(.*\))$/\1 override/g; t
|
||||
s/( "$f"\(.*\)[ ]*const[\*]*)([ ].*)/\1 override\2/g; t
|
||||
s/( "$f"\(.*\))([ ].*)/\1 override\2/g"
|
||||
sed -r "$PARSE" "$h" > temp
|
||||
mv temp "$h"
|
||||
done < virtualNames
|
||||
done
|
||||
|
||||
echo "Processing $DO on $DO_ON done"
|
||||
exit 0
|
||||
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "12559"
|
||||
#define REVISION_NR "12562"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue