open-judge
TypeScript icon, indicating that this package has built-in type declarations

1.0.0-alpha.1 • Public • Published

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.

Readme

Keywords

none

Package Sidebar

Install

npm i open-judge

Weekly Downloads

0

Version

1.0.0-alpha.1

License

MIT

Unpacked Size

29.6 kB

Total Files

7

Last publish

Collaborators

  • jacoblincool