open-judge
v1.0.0-alpha.1
Published
Open Judge Toolkit.
Downloads
10
Readme
Open Judge Kit
Open Judge Toolkit.
Execute
The easiest way to try the toolkit is open-judge execute
(oj exe
).
It create a isolated environment of the current directory and execute the command.
Usage: open-judge execute|exe [options] <command>
run command in isolated environment
Arguments:
command command to run
Options:
-p, --pre <pre-command> command to run before main command (default: "")
-e, --env <env...> environment variables (default: [])
-b, --base <image> base image (default: "jacoblincool/workspace-lite")
-D, --dir <dir> working directory (default: "current directory")
-k, --keep keep volume after execution (default: false)
-m, --memory <memory> memory limit (default: "1g")
-d, --disk <disk> disk limit (default: "1g")
-c, --cpu <cpu> cpu limit (default: "9")
-a, --artifact <artifact...> artifacts to keep (added, changed) (default: [])
-h, --help display help for command
# List all files in the current directory
oj exe ls
# Run `make`, then execute the compiled binary
oj exe --pre "make" "./program"
# Use GCC to compile and execute the program with input, then catch the output into a file artifact
oj exe --artifact added --pre "gcc -o main main.c" "echo '4 4 4 10' | ./main > out.log"
{
stdout: 'stdout\n',
stderr: 'stderr\n',
measurement: {
start: { cpu: 16230000, mem: 327680 },
prepare: { cpu: 114738000, mem: 491520 },
run: { cpu: 128680000, mem: 499712 }
},
code: 0,
changes: [ { path: 'out.log', kind: 1 } ],
artifact: 'oj-53odawst3qh'
}
The artifact (out.log
) has been created in an isolated docker volume.
- The
prepare
stage is the time of the pre-command execution. - The
run
stage is the time of the command execution.