#!/bin/bash # # @RDE_HEADER@ # $Id$ # $HeadURL$ # $Author$ # svc_name_abbr="" svc_name_long="" usage() { echo "usage: $0 -l " # echo " -o : ObjectName in CamelCase " echo " -s : Abbreviation of ServiceName with 3 letters" echo " -l : 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 ")"