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