From 4b6689de62f675fdecdabdcf60c8188f00d65488 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20M=2E=20Thi=C3=A9ry?= <nthiery@users.sf.net> Date: Mon, 9 Mar 2015 14:50:24 +0100 Subject: [PATCH] Added experimental script to compile and run programs in a docker sandbox --- .../docker-compile-and-run | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100755 test~coding~readingCppPrograms.fr/docker-compile-and-run diff --git a/test~coding~readingCppPrograms.fr/docker-compile-and-run b/test~coding~readingCppPrograms.fr/docker-compile-and-run new file mode 100755 index 0000000..9b0aff8 --- /dev/null +++ b/test~coding~readingCppPrograms.fr/docker-compile-and-run @@ -0,0 +1,25 @@ +#!/bin/sh + + +usage () { + echo docker-compile-and-run [program.cpp] + echo + echo Compiles and executes a c++ program within a sandbox. + echo The standard input and output is passed down to the program. + echo The exit status is that of the compiler. +} + +if [ -n $1 ]; then + usage + exit 0 +fi + +ID=`sudo docker run -d crosbymichael/build-essential sleep 1000` +sudo docker exec -i $ID sh -c "cat > prog.cpp" < $1 + +if sudo docker exec $ID g++ prog.cpp; then + sudo docker exec -i $ID ./a.out +else + exit $? +fi +sudo docker rm -f $ID > /dev/null 2>&1 -- GitLab