From 5c9de8a80ceb6f9d6efcb88b61e2543ef855fd4b Mon Sep 17 00:00:00 2001 From: jakeg00dwin Date: Fri, 1 Mar 2024 11:04:45 -0800 Subject: [PATCH] chagned `tdd.sh` to `otto.sh` because reasons --- otto.sh | 151 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tdd.sh | 2 +- 2 files changed, 152 insertions(+), 1 deletion(-) create mode 100755 otto.sh mode change 100755 => 100644 tdd.sh diff --git a/otto.sh b/otto.sh new file mode 100755 index 0000000..c73cbba --- /dev/null +++ b/otto.sh @@ -0,0 +1,151 @@ +#!/bin/sh +# Author: Jake Goodwin +# Date: 2024 +# Filename: tdd.sh + +CROSS_TC_WIN="$(pwd)/i686-w64-mingw32_toolchain.cmake" +CMAKE_VERBOSE="ON" +CROSS_COMPILE=1 +TEMPLATE_FILES=".template_files" +MODULE_DIR="${TEMPLATE_FILES}/modules" + +clear_cmake_cache () { + cd ./build + rm -rf CMakeCache.txt CMakeFiles/ +} + +does_module_exist () { + local basename="$1" + + if [ -d "src/${basename}" ]; then + echo "1" + else + echo "0" + fi +} + +add_new_module () { + read -p "Enter the name of the module:" modname + + result=$(does_module_exist "$modname") + + if [ "${result}" -eq "1" ]; then + echo "Module already exists!" + echo "Exiting without changing anything" + exit + fi + + modname_cap=$(echo $modname | sed 's/[a-z]/\U&/g') + modsrc_dir="./src/${modname}" + modtest_dir="./tests/${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 "s/module_name/${modname_cap}/" $MODULE_DIR/module_name.h > $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.c > $modtest_dir/test_${modname}.c + sed "s/module_name/${modname}/" $MODULE_DIR/TestCMakeLists.txt > $modtest_dir/CMakeLists.txt + + echo "Resulting files/dirs:" + tree -L 2 $modsrc_dir + tree -L 2 $modtest_dir + + # Now we add the new files to the git tracked files + + #del_module +} + +del_module () { + read -p "Enter the name of the module:" modname + + rm -r ./tests/${modname} + rm -r ./src/${modname} +} + +cross_compile () { + echo "ERROR: Currently no toolchain / target!" +} + +build_release() { + clear_cmake_cache + cmake -DCAM_HANDLER_LIB=ON -DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE} ../ + make camera_handler +} + +build_main () { + clear_cmake_cache + + cmake -DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE} ../ + make main +} + +run_c_tests () { + cp ./src/camera_handler/testdata.bin /tmp/ + clear_cmake_cache + cmake -DUNIT_TESTING=ON -DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE} ../ + make all && ctest +} + +print_menu () { + echo "BUILD MENU:" + echo "1. Run Tests" + echo "2. Build Project" + echo "3. Build for release" + echo "4. cross compile for XXXXXX" + echo "5. Add new module to project" + echo "6. Exit" +} + + +main() { + valid_choice=false + + while [ "$valid_choice" != true ]; do + print_menu + read -p "Enter your choice: " choice + + case $choice in + 1) + echo "You selected Option 1" + valid_choice=true + run_c_tests + ;; + 2) + echo "You selected Option 2" + valid_choice=true + build_main + ;; + 3) + echo "You selected Option 3" + valid_choice=true + build_release + ;; + 4) + echo "You selected Option 4" + valid_choice=true + cross_compile + ;; + 5) + echo "You selected Option 5" + valid_choice=true + add_new_module + ;; + 6) + echo "Exiting..." + exit 0 + ;; + *) + echo "Invalid choice. Please select a valid option." + ;; + esac + done +} + +main diff --git a/tdd.sh b/tdd.sh old mode 100755 new mode 100644 index c73cbba..059a134 --- a/tdd.sh +++ b/tdd.sh @@ -1,7 +1,7 @@ #!/bin/sh # Author: Jake Goodwin # Date: 2024 -# Filename: tdd.sh +# Filename: otto.sh CROSS_TC_WIN="$(pwd)/i686-w64-mingw32_toolchain.cmake" CMAKE_VERBOSE="ON"