diff --git a/tooling/package-and-deliver.sh b/tooling/package-and-deliver.sh new file mode 100755 index 0000000..0ed33d0 --- /dev/null +++ b/tooling/package-and-deliver.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +echo "Test project build" + +make clean && make + +if [ $? -ne 0 ] ; then + echo "Build failed!" + exit 1 +else + echo "Build OK!" +fi + + +echo "Format code" +make format + +# Test if there are changed files that are not commited + +if [ -n "$(git status --porcelain)" ] ; then + echo "Uncommited files detected" + git status + exit 1 +else + echo "OK" +fi + + +echo "Currently set tags on this project" +git tag +echo -n "Are the required tags added? (Y/n)" +read ANSWER +if [ "$ANSWER" == "n" ]; then + echo "Please add required tags" + exit 1 +fi + + +echo "Packaging the project" + +make clean && make + +TEMP_DIR=$(mktemp -d) +cp bin/atmega2560-user-code.ihx $TEMP_DIR +make clean +git archive --format=tar.gz -o $TEMP_DIR/$(git describe --abbrev=6 --dirty --always --tags --long).tar.gz HEAD +mv $TEMP_DIR/* bin/ +rm -rf $TEMP_DIR + +echo "Project packaging succeeded" +exit 0