aboutsummaryrefslogtreecommitdiffstats
path: root/service
diff options
context:
space:
mode:
authorLouis Burda <quent.burda@gmail.com>2021-05-19 13:48:31 +0200
committerLouis Burda <quent.burda@gmail.com>2021-05-19 13:48:31 +0200
commit16b3dff93e5d1096174749e1b809728f585d95fb (patch)
treebf0882e08c1834774ff1297f81752305ac7aaec3 /service
parent64e9b2ad130c0cf28797c3530683fc1cc6b0e9d3 (diff)
downloadenowars5-service-stldoctor-16b3dff93e5d1096174749e1b809728f585d95fb.tar.gz
enowars5-service-stldoctor-16b3dff93e5d1096174749e1b809728f585d95fb.zip
refactored service structure and added do.sh for automation
Diffstat (limited to 'service')
-rw-r--r--service/.dockerignore1
-rw-r--r--service/.gitignore1
-rw-r--r--service/container/.gitignore1
-rw-r--r--service/container/Dockerfile (renamed from service/Dockerfile)0
-rw-r--r--service/container/cleaner.sh (renamed from service/cleaner.sh)0
-rw-r--r--service/container/data/lastclean0
-rw-r--r--service/container/docker-compose.yml (renamed from service/docker-compose.yml)0
-rwxr-xr-xservice/container/entrypoint.sh (renamed from service/entrypoint.sh)0
-rw-r--r--service/do.sh46
-rw-r--r--service/patches/flagstore1.diff15
-rw-r--r--service/src/util.c3
-rw-r--r--service/tests/data/evil1.stl (renamed from service/src/tests/evil1.stl)0
-rw-r--r--service/tests/data/flag1.stl (renamed from service/src/tests/flag1.stl)0
-rw-r--r--service/tests/data/sample-ascii.stl (renamed from service/src/tests/sample-ascii.stl)0
-rw-r--r--service/tests/data/sample-binary.stl (renamed from service/src/tests/sample-binary.stl)bin134 -> 134 bytes
-rw-r--r--service/tests/test.sh (renamed from service/src/test.sh)0
16 files changed, 65 insertions, 2 deletions
diff --git a/service/.dockerignore b/service/.dockerignore
new file mode 100644
index 0000000..4baccb8
--- /dev/null
+++ b/service/.dockerignore
@@ -0,0 +1 @@
+patches
diff --git a/service/.gitignore b/service/.gitignore
index 2421b49..648ea81 100644
--- a/service/.gitignore
+++ b/service/.gitignore
@@ -1,2 +1,3 @@
data/*
!data/.keep
+.cleansrc
diff --git a/service/container/.gitignore b/service/container/.gitignore
new file mode 100644
index 0000000..8eba6c8
--- /dev/null
+++ b/service/container/.gitignore
@@ -0,0 +1 @@
+src/
diff --git a/service/Dockerfile b/service/container/Dockerfile
index e987831..e987831 100644
--- a/service/Dockerfile
+++ b/service/container/Dockerfile
diff --git a/service/cleaner.sh b/service/container/cleaner.sh
index 2882608..2882608 100644
--- a/service/cleaner.sh
+++ b/service/container/cleaner.sh
diff --git a/service/container/data/lastclean b/service/container/data/lastclean
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/service/container/data/lastclean
diff --git a/service/docker-compose.yml b/service/container/docker-compose.yml
index 56ecc9f..56ecc9f 100644
--- a/service/docker-compose.yml
+++ b/service/container/docker-compose.yml
diff --git a/service/entrypoint.sh b/service/container/entrypoint.sh
index 956c747..956c747 100755
--- a/service/entrypoint.sh
+++ b/service/container/entrypoint.sh
diff --git a/service/do.sh b/service/do.sh
new file mode 100644
index 0000000..2dfd82c
--- /dev/null
+++ b/service/do.sh
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+SCRIPTPATH="$(dirname $(readlink -f "$0"))"
+cd "$SCRIPTPATH"
+
+makefile="
+all: .cleansrc
+
+.cleansrc: src/*
+ bash do.sh cleansrc src container/src
+ touch .cleansrc
+"
+
+shopt -s expand_aliases
+alias pushd="pushd &>/dev/null"
+alias popd="popd &>/dev/null"
+
+if [ "$1" == "compose" ]; then
+ # ensure container files are up to date
+ make --file <(echo "$makefile")
+
+ # forward commands to compose
+ pushd container
+ docker-compose ${@:2}
+ popd
+elif [ "$1" == "cleansrc" ]; then
+ # copy files
+ src="$2"
+ dst="$3"
+ [ -e "$dst" ] && rm -rf "$dst"
+ cp -r "$src" "$dst"
+
+ # strip comments
+ find "$dst" | while read path; do
+ if [ -f "$path" ]; 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{2,}/\n/g' "$path" # collapse multiple newlines
+ fi
+ done
+else
+ echo "USAGE: do.sh (compose) [args..]"
+ echo "EXAMPLES:"
+ echo " do.sh compose up --build # starts the docker container"
+fi
diff --git a/service/patches/flagstore1.diff b/service/patches/flagstore1.diff
new file mode 100644
index 0000000..c307b3e
--- /dev/null
+++ b/service/patches/flagstore1.diff
@@ -0,0 +1,15 @@
+diff --git a/service/src/util.c b/service/src/util.c
+--- a/service/src/util.c
++++ b/service/src/util.c
+@@ -75,10 +75,9 @@ void
+ freadstr(FILE *f, char **dst)
+ {
+ size_t start, len;
+- char c;
+
+ start = ftell(f);
+- for (len = 0; (c = fgetc(f)) != EOF && c; len++);
++ for (len = 0; fgetc(f) > 0; len++);
+ fseek(f, start, SEEK_SET);
+
+ *dst = checkp(calloc(1, len + 1));
diff --git a/service/src/util.c b/service/src/util.c
index c53f92b..bf6e872 100644
--- a/service/src/util.c
+++ b/service/src/util.c
@@ -75,10 +75,9 @@ void
freadstr(FILE *f, char **dst)
{
size_t start, len;
- char c;
start = ftell(f);
- for (len = 0; (c = fgetc(f)) != EOF && c; len++);
+ for (len = 0; fgetc(f) > 0; len++);
fseek(f, start, SEEK_SET);
*dst = checkp(calloc(1, len + 1));
diff --git a/service/src/tests/evil1.stl b/service/tests/data/evil1.stl
index 706e9e2..706e9e2 100644
--- a/service/src/tests/evil1.stl
+++ b/service/tests/data/evil1.stl
diff --git a/service/src/tests/flag1.stl b/service/tests/data/flag1.stl
index f2a3854..f2a3854 100644
--- a/service/src/tests/flag1.stl
+++ b/service/tests/data/flag1.stl
diff --git a/service/src/tests/sample-ascii.stl b/service/tests/data/sample-ascii.stl
index e3c89ef..e3c89ef 100644
--- a/service/src/tests/sample-ascii.stl
+++ b/service/tests/data/sample-ascii.stl
diff --git a/service/src/tests/sample-binary.stl b/service/tests/data/sample-binary.stl
index 13c02e4..13c02e4 100644
--- a/service/src/tests/sample-binary.stl
+++ b/service/tests/data/sample-binary.stl
Binary files differ
diff --git a/service/src/test.sh b/service/tests/test.sh
index 69e3ea1..69e3ea1 100644
--- a/service/src/test.sh
+++ b/service/tests/test.sh