From 13b65f01132c41be9ab8d9f92c2c5ca605c366d8 Mon Sep 17 00:00:00 2001 From: Louis Burda Date: Sat, 29 May 2021 14:24:31 +0200 Subject: changed repo structure and commited releease files such that default docker-compose worklow commands work in testvm --- do.sh | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 do.sh (limited to 'do.sh') diff --git a/do.sh b/do.sh new file mode 100644 index 0000000..e01873c --- /dev/null +++ b/do.sh @@ -0,0 +1,90 @@ +#!/bin/sh + +SCRIPTPATH="$(dirname $(readlink -f "$0"))" +cd "$SCRIPTPATH" + +makefile=" +all: .cleansrc + +.cleansrc: src/* + bash do.sh cleansrc src service/src + touch .cleansrc +" + +shopt -s expand_aliases +alias pushd="pushd &>/dev/null" +alias popd="popd &>/dev/null" + +if [ "$1" == "compose" ]; then + # ensure built service files are up to date + make --file <(echo "$makefile") + + # forward commands to compose + pushd service + docker-compose ${@:2} + popd +elif [ "$1" == "cleansrc" ]; then + if [ $# -lt 3 ]; then + echo "USAGE: do.sh cleansrc " + exit 0 + fi + + # copy files + src="$2" + dst="$3" + [ -e "$dst" ] && rm -rf "$dst" + mkdir -p "$dst" + cp -r "$src"/{*.c,*.h,Makefile,msgs} "$dst" + + # strip comments + find "$dst" | while read path; do + if [ -f "$path" ]; then + if [ ! -z $(echo "$path" | grep '.[hc]$') ]; then + sed -i -e 's/^\s*\/\*.*\*\/\s*$//g' "$path" # remove /* */ style comments + sed -i -e 's/\s*\/\*.*\*\/\s*/ /g' "$path" # remove /* */ style comments + sed -i -e 's/\/\/.*//g' "$path" # remove // style comments + sed -i -e ':a;N;$!ba;s/\n\{3,\}/\n\n/g' "$path" # collapse multiple newlines + sed -i -e 's/fprintf(\s*stderr\s*,\s*/printf(/g' "$path" # replace fprintf stderr + elif [ "$(basename "$path")" == "Makefile" ]; then + sed -i -e 's/\s*#.*//g' "$path" # remove # style comments + sed -i -e ':a;N;$!ba;s/\n\{3,\}/\n\n/g' "$path" # collapse multiple newlines + fi + fi + done +elif [ "$1" == "test" ]; then + SRCDIR="$PWD/src" DATADIR="$PWD/service/data" bash "tests/test.sh" ${@:2} +elif [ "$1" == "make" ]; then + # build a normal version + pushd src + if [ -e ".safebuild" ]; then + make clean + rm ".safebuild" + fi + make + popd +elif [ "$1" == "make-safe" ]; then + # build a 'safe' version with flagstore patches + + pushd src + make clean + touch ".safebuild" + + for f in $(ls | grep '\.[ch]$'); do + cp "$f" "safe_$f" + done + + git apply patches/flagstore1.diff + git apply patches/flagstore2.diff + + PREFIX="safe_" make + + rm safe_* + popd +else + echo "USAGE: do.sh (compose) [args..]" + echo "EXAMPLES:" + echo " do.sh compose up --build # starts the docker container" + echo " do.sh cleansrc # post-process source files for release" + echo " do.sh make-safe # create patched version of binary" + echo " do.sh test # run a test on the binary" +fi -- cgit v1.2.3-71-gd317