Skip to content

Commit 5bc166a

Browse files
committed
Add templates for input-output tasks
- Added templates for Ada, Algol68, C++, Go, Lua, Prolog, Rust, Tcl - Updated templates for Java, Python, Rexx
1 parent 5479fbf commit 5bc166a

File tree

32 files changed

+191
-15
lines changed

32 files changed

+191
-15
lines changed

handler/handlers.go

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2019 The Pythia Authors.
1+
// Copyright 2019-2020 The Pythia Authors.
22
// This file is part of Pythia.
33
//
44
// Pythia is free software: you can redistribute it and/or modify
@@ -321,22 +321,42 @@ func CreateTask(w http.ResponseWriter, r *http.Request) {
321321
_ = copyFile(templateDir+"/scripts/pythia-iot", taskDir+"/scripts/pythia-iot", 0755)
322322

323323
switch request.Environment {
324-
case "python":
325-
_ = copyFile(templateDir+"/skeleton/program.py", taskDir+"/skeleton/program.py", 0755)
326-
case "php7":
327-
_ = copyFile(templateDir+"/skeleton/program.php", taskDir+"/skeleton/program.php", 0755)
328-
case "nodejs":
329-
_ = copyFile(templateDir+"/skeleton/program.js", taskDir+"/skeleton/program.js", 0755)
330-
case "java":
324+
case "ada":
331325
_ = copyFile(templateDir+"/scripts/execute.sh", taskDir+"/scripts/execute.sh", 0755)
332-
_ = copyFile(templateDir+"/skeleton/Program.java", taskDir+"/skeleton/Program.java", 0755)
326+
_ = copyFile(templateDir+"/skeleton/program.adb", taskDir+"/skeleton/program.adb", 0755)
327+
case "algol68":
328+
_ = copyFile(templateDir+"/skeleton/program.alg", taskDir+"/skeleton/program.alg", 0755)
333329
case "bash":
334330
_ = copyFile(templateDir+"/skeleton/program.sh", taskDir+"/skeleton/program.sh", 0755)
335-
case "rexx":
336-
_ = copyFile(templateDir+"/skeleton/program.rexx", taskDir+"/skeleton/program.rexx", 0755)
337331
case "c":
338332
_ = copyFile(templateDir+"/scripts/execute.sh", taskDir+"/scripts/execute.sh", 0755)
339333
_ = copyFile(templateDir+"/skeleton/program.c", taskDir+"/skeleton/program.c", 0755)
334+
case "cpp":
335+
_ = copyFile(templateDir+"/scripts/execute.sh", taskDir+"/scripts/execute.sh", 0755)
336+
_ = copyFile(templateDir+"/skeleton/program.cpp", taskDir+"/skeleton/program.cpp", 0755)
337+
case "golang":
338+
_ = copyFile(templateDir+"/scripts/execute.sh", taskDir+"/scripts/execute.sh", 0755)
339+
_ = copyFile(templateDir+"/skeleton/program.go", taskDir+"/skeleton/program.go", 0755)
340+
case "java":
341+
_ = copyFile(templateDir+"/scripts/execute.sh", taskDir+"/scripts/execute.sh", 0755)
342+
_ = copyFile(templateDir+"/skeleton/Program.java", taskDir+"/skeleton/Program.java", 0755)
343+
case "lua":
344+
_ = copyFile(templateDir+"/skeleton/program.lua", taskDir+"/skeleton/program.lua", 0755)
345+
case "nodejs":
346+
_ = copyFile(templateDir+"/skeleton/program.js", taskDir+"/skeleton/program.js", 0755)
347+
case "php7":
348+
_ = copyFile(templateDir+"/skeleton/program.php", taskDir+"/skeleton/program.php", 0755)
349+
case "prolog":
350+
_ = copyFile(templateDir+"/skeleton/program.pl", taskDir+"/skeleton/program.pl", 0755)
351+
case "python":
352+
_ = copyFile(templateDir+"/skeleton/program.py", taskDir+"/skeleton/program.py", 0755)
353+
case "rexx":
354+
_ = copyFile(templateDir+"/skeleton/program.rexx", taskDir+"/skeleton/program.rexx", 0755)
355+
case "rust":
356+
_ = copyFile(templateDir+"/scripts/execute.sh", taskDir+"/scripts/execute.sh", 0755)
357+
_ = copyFile(templateDir+"/skeleton/program.rs", taskDir+"/skeleton/program.rs", 0755)
358+
case "tcl":
359+
_ = copyFile(templateDir+"/skeleton/program.tcl", taskDir+"/skeleton/program.tcl", 0755)
340360
}
341361

342362
// Save the configuration

templates/input-output/ada/control

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
/task/scripts/pythia-iot preprocess
2+
!/task/scripts/pythia-iot execute /task/scripts/execute.sh
3+
/task/scripts/pythia-iot feedback
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/bin/sh
2+
3+
# Move to working directory.
4+
cd /tmp/work/student
5+
6+
# Compile the code if not already compiled.
7+
if [ ! -f program ]
8+
then
9+
gnatmake program.adb -o program 2> /tmp/work/output/out.err
10+
if [ -s /tmp/work/output/out.err ]
11+
then
12+
cat /tmp/work/output/out.err
13+
exit 1
14+
else
15+
rm /tmp/work/output/out.err
16+
fi
17+
fi
18+
19+
# Execute the code.
20+
./program
2.81 MB
Binary file not shown.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
@@header@@
2+
3+
procedure Program is
4+
@ @footer@@
5+
begin
6+
@ @body@@
7+
end Program;
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
/task/scripts/pythia-iot preprocess
2+
!/task/scripts/pythia-iot execute a68g /tmp/work/student/program.alg
3+
/task/scripts/pythia-iot feedback
Binary file not shown.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
@@header@@
2+
3+
@@footer@@
4+
5+
main: (
6+
@ @body@@
7+
)

templates/input-output/cpp/control

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
/task/scripts/pythia-iot preprocess
2+
!/task/scripts/pythia-iot execute /task/scripts/execute.sh
3+
/task/scripts/pythia-iot feedback
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/bin/sh
2+
3+
# Move to working directory.
4+
cd /tmp/work/student
5+
6+
# Compile the code if not already compiled.
7+
if [ ! -f program ]
8+
then
9+
/usr/bin/g++ program.cpp -o program 2> /tmp/work/output/out.err
10+
if [ -s /tmp/work/output/out.err ]
11+
then
12+
cat /tmp/work/output/out.err
13+
exit 1
14+
else
15+
rm /tmp/work/output/out.err
16+
fi
17+
fi
18+
19+
# Execute the code.
20+
./program

0 commit comments

Comments
 (0)