--- /dev/null
+cmake_minimum_required(VERSION 3.15)
+project(template)
+
+set(CMAKE_C_STANDARD 11)
+
+file(GLOB_RECURSE SRC
+       src/*.c
+       template-test/*.c
+)
+
+add_executable(template-test ${SRC})
+target_include_directories(template-test
+       PUBLIC src
+       PUBLIC template-test
+)
+
+target_link_libraries(template-test PRIVATE check)
 
--- /dev/null
+#!/bin/bash
+
+function error()
+{
+       echo "provide a name"
+       exit 1
+}
+
+function init()
+{
+       echo "renaming template file & lines to $1"
+       upper=$(echo $1 | tr '[:lower:]' '[:upper:]')
+       under=$(echo $1 | tr '-' '_')
+       dashes=$(echo $1 | tr '_' '-')
+
+       mv src/template.h src/$under.h
+       mv src/template.c src/$under.c
+       find . -type f -name '*.[c|h]' -exec sed -i "s/template/$under/g" {} +
+       sed -i "s/template/$under/g" CMakeLists.txt
+       echo "build" > .gitignore
+
+       # clearing README
+       echo "# $dashes" > README.md
+}
+
+# do we have a name parameter?
+[ $# -eq 1 ] && init $1 || error
+rm -- "$0"
+
+# clearing up source control
+git rm src/template.c src/template.h $0
+git add src/ README.md .gitignore CMakeLists.txt
+
+git commit -m "replaced template strings with $1"
+git push
+