diff --git a/otto.sh b/otto.sh index 46c77c2..3d0f8b9 100755 --- a/otto.sh +++ b/otto.sh @@ -8,6 +8,7 @@ CMAKE_VERBOSE="ON" CROSS_COMPILE=1 TEMPLATE_FILES=".template_files" MODULE_DIR="${TEMPLATE_FILES}/modules" +TEST_MODULE_DIR="${TEMPLATE_FILES}/test_module" CHIP="ch32v003" generate_tags_file () { @@ -86,12 +87,12 @@ does_mock_exist () { add_module_to_cmakes () { local basename="$1" - + echo "add_module_to_cmakes()" echo "add_subdirectory(${basename})" >> ./src/CMakeLists.txt # Tests cmake file needs to be edited in place. - sed -i'' "s/# TEST_DIRS.*$/# TEST_DIRS\r\nadd_subdirectory(${basename})/g" ./tests/CMakeLists.txt - sed -i'' "s/# TEST_LINKS.*$/# TEST_LINKS\r\n\ttest_${basename}/g" ./tests/CMakeLists.txt + sed -i '' -e "s|# TEST_DIRS.*$|# TEST_DIRS\nadd_subdirectory(${basename})|" ./tests/CMakeLists.txt + sed -i '' -e "s|# TEST_LINKS.*$|# TEST_LINKS\ntest_${basename}|" ./tests/CMakeLists.txt } remove_module_from_cmakes () { @@ -157,7 +158,8 @@ add_mock_module () { exit fi - modname_cap=$(echo $modname | sed 's/[a-z]/\U&/g') + # modname_cap=$(echo $modname | sed 's/[a-z]/\U&/g') + modname_cap="${modname}" modsrc_dir="./mocks/${modname}" modtest_dir="./tests/${modname}" @@ -167,17 +169,19 @@ add_mock_module () { #copy the template files. echo "copying & customizing template files..." - - sed "s/module_name/${modname}/" $MODULE_DIR/module_name.c > $modsrc_dir/${modname}.c - sed -i'' "3s/todays_date/$(date +%Y)/" $modsrc_dir/${modname}.c - sed "s/module_name/${modname_cap}/" $MODULE_DIR/module_name.h > $modsrc_dir/${modname}.h - sed -i'' "3s/todays_date/$(date +%Y)/" $modsrc_dir/${modname}.h + echo "Creating src files..." + sed "s/module_name/${modname}/g" "${MODULE_DIR}/module_name.c" > ${modsrc_dir}/${modname}.c + sed -i'' "3s/todays_date/$(date +%Y)/" "${modsrc_dir}/${modname}.c" - sed "s/module_name/${modname}/" $MODULE_DIR/CMakeLists.txt > $modsrc_dir/CMakeLists.txt + sed "s/module_name/${modname_cap}/g" "${MODULE_DIR}/module_name.h" > ${modsrc_dir}/${modname}.h + sed -i'' "3s/todays_date/$(date +%Y)/" "${modsrc_dir}/${modname}.h" - sed "s/module_name/${modname}/" $MODULE_DIR/test_module_name.cpp > $modtest_dir/test_${modname}.cpp - sed "s/module_name/${modname}/" $MODULE_DIR/TestCMakeLists.txt > $modtest_dir/CMakeLists.txt + sed "s/module_name/${modname}/g" "${MODULE_DIR}/CMakeLists.txt" > ${modsrc_dir}/CMakeLists.txt + + echo "Creating test files..." + sed "s/module_name/${modname}/g" "${MODULE_DIR}/test_module_name.cpp" > ${modtest_dir}/test_${modname}.cpp + sed "s/module_name/${modname}/g" "$MODULE_DIR/TestCMakeLists.txt" > ${modtest_dir}/CMakeLists.txt # Add the module to the cmake lists files. add_module_to_cmakes "${modname}" @@ -202,28 +206,39 @@ add_new_module () { exit fi - modname_cap=$(echo $modname | sed 's/[a-z]/\U&/g') + #modname_cap=$(echo $modname | sed 's/[a-z]/\U&/g') + modname_cap="${modname}" modsrc_dir="./src/${modname}" modtest_dir="./tests/${modname}" + echo "modname_cap: ${modname_cap}" + echo "modname: ${modname}" + echo "creating: ${modsrc_dir}, ${modtest_dir}" mkdir $modsrc_dir mkdir $modtest_dir #copy the template files. echo "copying & customizing template files..." - - sed "s/module_name/${modname}/" $MODULE_DIR/module_name.c > $modsrc_dir/${modname}.c - sed -i'' "3s/todays_date/$(date +%Y)/" $modsrc_dir/${modname}.c - - sed "s/module_name/${modname_cap}/" $MODULE_DIR/module_name.h > $modsrc_dir/${modname}.h - sed -i'' "3s/todays_date/$(date +%Y)/" $modsrc_dir/${modname}.h - - sed "s/module_name/${modname}/" $MODULE_DIR/CMakeLists.txt > $modsrc_dir/CMakeLists.txt - - sed "s/module_name/${modname}/" $MODULE_DIR/test_module_name.cpp > $modtest_dir/test_${modname}.cpp - sed "s/module_name/${modname}/" $MODULE_DIR/TestCMakeLists.txt > $modtest_dir/CMakeLists.txt + + echo "Creating src files..." + sed -e "s/module_name/${modname}/g" $MODULE_DIR/module_name.c > $modsrc_dir/${modname}.c + sed -i '' -e "3s/todays_date/$(date +%Y)/" $modsrc_dir/${modname}.c + + sed -e "s/module_name/${modname_cap}/g" $MODULE_DIR/module_name.h > $modsrc_dir/${modname}.h + sed -i '' -e "5s/todays_date/$(date +%Y)/" $modsrc_dir/${modname}.h + + sed -e "s/module_name/${modname}/" ${MODULE_DIR}/CMakeLists.txt > $modsrc_dir/CMakeLists.txt + + + echo "Creating test files..." + sed -e "s/module_name/${modname}/g" ${TEST_MODULE_DIR}/test_module_name.cpp > ${modtest_dir}/test_${modname}.cpp + sed -e "s/module_name/${modname}/g" ${TEST_MODULE_DIR}/CMakeLists.txt > ${modtest_dir}/CMakeLists.txt + cp -r ${TEST_MODULE_DIR}/mocks ${modtest_dir}/ + cp -r ${TEST_MODULE_DIR}/fakes ${modtest_dir}/ + cp -r ${TEST_MODULE_DIR}/stubs ${modtest_dir}/ + # Add the module to the cmake lists files. add_module_to_cmakes "${modname}"