java support

This commit is contained in:
Brian Seymour 2018-10-05 21:11:12 -05:00
parent e050d5ae35
commit 5d8f52afd3
3 changed files with 16 additions and 6 deletions

View File

@ -41,16 +41,17 @@ func Execute(res http.ResponseWriter, req *http.Request) {
message.Decode(&inbound) message.Decode(&inbound)
whitelist := []string{ whitelist := []string{
"python", "python2", "python3",
"ruby",
"javascript", "js", "node",
"c", "c",
"cpp", "c++", "cpp", "c++",
"go",
"r",
"php",
"c#", "csharp", "cs", "c#", "csharp", "cs",
"go",
"java",
"nasm", "asm", "nasm", "asm",
"javascript", "js", "node",
"php",
"python", "python2", "python3",
"r",
"ruby",
} }
// check if the supplied language is supported // check if the supplied language is supported

View File

@ -50,6 +50,9 @@ case "$lang" in
"nasm" | "asm") "nasm" | "asm")
bin=executor_nasm bin=executor_nasm
;; ;;
"java")
bin=executor_java
;;
*) *)
echo "invalid language" echo "invalid language"
exit exit
@ -72,6 +75,7 @@ docker run \
-v $dir/executors/r:/executor_r:ro \ -v $dir/executors/r:/executor_r:ro \
-v $dir/executors/php:/executor_php:ro \ -v $dir/executors/php:/executor_php:ro \
-v $dir/executors/nasm:/executor_nasm:ro \ -v $dir/executors/nasm:/executor_nasm:ro \
-v $dir/executors/java:/executor_java:ro \
piston \ piston \
runuser \ runuser \
-l runner \ -l runner \

5
docker/executors/java Executable file
View File

@ -0,0 +1,5 @@
cp /*.code .
name=$(cat $1 | grep -Eo 'public class ([A-Za-z0-9]+)' | cut -d' ' -f3)
mv $1 $name.java
timeout -s KILL 10 javac $name.java
timeout -s KILL 3 java $name ${@:3}