145 lines
3.2 KiB
Bash
Executable File
145 lines
3.2 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# @RDE_HEADER@
|
|
# $Id$
|
|
# $HeadURL$
|
|
# $Author$
|
|
#
|
|
|
|
svc_name_abbr=""
|
|
svc_name_long=""
|
|
|
|
|
|
usage()
|
|
{
|
|
echo "usage: $0 -l <ObjectName>"
|
|
# echo " -o <ObjectName> : ObjectName in CamelCase "
|
|
echo " -s <SvcName short>: Abbreviation of ServiceName with 3 letters"
|
|
echo " -l <SvcName long> : ServiceName in CamelCase"
|
|
}
|
|
|
|
while getopts "s:l:" opt "$@"; do
|
|
case $opt in
|
|
# o)
|
|
# obj_cc=$OPTARG
|
|
# ;;
|
|
l)
|
|
svc_cc=$OPTARG
|
|
;;
|
|
s)
|
|
svc_abbr=$OPTARG
|
|
;;
|
|
\?)
|
|
echo "Invalid option: -$OPTARG"
|
|
usage
|
|
exit 1
|
|
;;
|
|
:)
|
|
echo "Option -$OPTARG requires an argument."
|
|
usage
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
shift $((OPTIND-1))
|
|
|
|
if [ -z $svc_cc ]; then
|
|
echo "Parameter -l is required"
|
|
usage
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z $svc_abbr ]; then
|
|
echo "Parameter -s is required"
|
|
usage
|
|
exit 1
|
|
fi
|
|
|
|
svc_abbr_lc=${svc_abbr,,}
|
|
svc_abbr_cc=${svc_abbr_lc~}
|
|
echo "svc CamelCase : ${svc_cc} "
|
|
echo "svc abbr Cc : ${svc_abbr_cc} "
|
|
echo "svc abbr lower : ${svc_abbr_lc} "
|
|
|
|
echo "ObjectNames (cc): "
|
|
for obje in "$@"; do
|
|
echo " ${obje}"
|
|
done
|
|
|
|
echo "=========================="
|
|
echo "Iterating through objects:"
|
|
echo
|
|
|
|
declare -a headers
|
|
declare -a sources
|
|
|
|
for obje in "$@"; do
|
|
cd ../skeleton
|
|
obj_lower=${obje,,}
|
|
obj_upper=${obje^^}
|
|
obj_underscore=`echo ${obje} | sed 's/\([a-z0-9]\)\([A-Z]\)/\1_\L\2/g'`
|
|
obj_underscore=${obj_underscore,,}
|
|
echo "Object '${obje}': "
|
|
echo " obj CamelCase : ${obje} "
|
|
echo " obj lower : ${obj_lower} "
|
|
echo " obj UPPER : ${obj_upper} "
|
|
echo " obj under_score : ${obj_underscore} "
|
|
echo
|
|
echo " Copying [handler|object]_${obj_underscore}.[cpp|h] to ./${svc_cc} directory"
|
|
cp ./stub/handler_xxx.cpp ../${svc_cc}/handler_${obj_underscore}.cpp
|
|
cp ./stub/handler_xxx.h ../${svc_cc}/handler_${obj_underscore}.h
|
|
cp ./stub/object_xxx.cpp ../${svc_cc}/object_${obj_underscore}.cpp
|
|
cp ./stub/object_xxx.h ../${svc_cc}/object_${obj_underscore}.h
|
|
|
|
cd ../${svc_cc}
|
|
|
|
# search & replace XXX/Xxx/xxx/XxxXxxXxx
|
|
for file in `find . -type f -name "*_${obj_underscore}.*" `; do
|
|
echo " -> Replace all Xxx/xxx/XXX and namespace in file ${file}"
|
|
# sed -i "s/XxxXxxXxx/${svc_name_long}/g" ${file}
|
|
sed -i "s/XXX/${obj_upper}/g" ${file}
|
|
sed -i "s/Xxx/${obje}/g" ${file}
|
|
sed -i "s/xxx_xxx/${obj_underscore}/g" ${file}
|
|
sed -i "s/xxx/${obj_lower}/g" ${file}
|
|
|
|
sed -i "s/YyyYyyYyy/${svc_cc}/g" ${file}
|
|
sed -i "s/Yyy/${svc_abbr_cc}/g" ${file}
|
|
sed -i "s/yyy/${svc_abbr_lc}/g" ${file}
|
|
fil2=${file##.*/}
|
|
if [[ "$file" == *.h ]]
|
|
then
|
|
headers+=(${fil2})
|
|
else
|
|
sources+=(${fil2})
|
|
fi
|
|
done
|
|
echo
|
|
done
|
|
echo "=========================="
|
|
echo "Copied handler and object files and replaced strings within files."
|
|
|
|
# echo what to do next:
|
|
echo "=========================="
|
|
echo "Next steps:"
|
|
echo
|
|
echo "=> Include Files in CMakeLists.txt by adding the following lines:"
|
|
|
|
echo "SET(SRCS_exe"
|
|
echo " [...]"
|
|
echo "vvvvvvvvvvvvvvvvvvvvvvvvvv"
|
|
for source in "${sources[@]}"; do
|
|
echo " ${source}"
|
|
done
|
|
echo "^^^^^^^^^^^^^^^^^^^^^^^^^^"
|
|
echo ")"
|
|
|
|
echo "SET(HDRS_exe"
|
|
echo " [...]"
|
|
echo "vvvvvvvvvvvvvvvvvvvvvvvvvv"
|
|
for head in "${headers[@]}"; do
|
|
echo " ${head}"
|
|
done
|
|
echo "^^^^^^^^^^^^^^^^^^^^^^^^^^"
|
|
echo ")"
|
|
|