Files
qt5-legatus-legacy/Lts/Services/skeleton/generate_service_stub.sh
T
2026-08-13 18:33:10 +02:00

111 lines
2.4 KiB
Bash
Executable File

#!/bin/bash
#
# @RDE_HEADER@
# $Id$
# $HeadURL$
# $Author$
#
svc_name_abbr=""
svc_name_long=""
usage()
{
echo "usage: $0 -l <SvcName long> -s <SvcName short>"
echo " -l <SvcName long> : ServiceName in CamelCase "
echo " -s <SvcName short>: Abbreviation of ServiceName with 3 letters"
}
while getopts "s:l:" opt "$@"; do
case $opt in
l)
svc_name_long=$OPTARG
;;
s)
svc_name_abbr=$OPTARG
;;
\?)
echo "Invalid option: -$OPTARG"
usage
exit 1
;;
:)
echo "Option -$OPTARG requires an argument."
usage
exit 1
;;
esac
done
if [ -z $svc_name_long ]; then
echo "Parameter -l is required"
usage
exit 1
fi
if [ -z $svc_name_abbr ]; then
echo "Parameter -s is required"
usage
exit 1
fi
echo "ServiceName (long): ${svc_name_long} "
echo "ServiceName (Abbr): ${svc_name_abbr} "
svc_lower=${svc_name_abbr,,}
svc_upper=${svc_name_abbr^^}
svc_cc=${svc_lower~}
echo "svc lower (Abbr): ${svc_lower} "
echo "svc upper (Abbr): ${svc_upper} "
echo "svc CamelCase (Abbr): ${svc_cc} "
# copy skeleton to SvcDirectory
svc_dir=${svc_name_long}
if [ -d ../${svc_dir} ]; then
echo "Directory ${svc_dir} already exists. Remove it and restart the script"
exit 2
rm -r ${svc_dir}
fi
cp -r ./base ../${svc_dir}
echo "Copied files to ${svc_dir}."
cd ../${svc_dir}
# mv files with xxx_* to svc_lower_*
#for i in find . -name 'xxx_*' -exec ls {} \;
# Todo: sed for renaming? xxx -> ${svc_lower}, wherever it occurs
for old_file in `find . -name 'xxx_*' `; do
new_file="${svc_lower}${old_file:5}"
echo "-> Rename file ${old_file} to ${new_file}"
mv ${old_file} ./${new_file}
done
mv ./log4cxx_xxx.props ./log4cxx_${svc_lower}.props
# search & replace XXX/Xxx/xxx/XxxXxxXxx
for file in `find . -type f -name '*' `; 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/${svc_upper}/g" ${file}
sed -i "s/Xxx/${svc_cc}/g" ${file}
sed -i "s/xxx/${svc_lower}/g" ${file}
done
pwd=`pwd`
# echo what to do next:
echo "------------------------"
echo "Next steps:"
echo "------------------------"
echo "=> Copy xml service file (${svc_lower}_service.xml) from EA into '${svc_dir}'"
echo " cp ${svc_lower}_service.xml ${pwd}/"
echo ""
echo "=> Include '${svc_dir}' in CMakeLists.txt (in folder 'Services') by adding the following line:"
echo " ADD_SUBDIRECTORY(${svc_name_long})"
echo "------------------------"