Skip to content

CLI Example

lanrongqi edited this page Dec 24, 2020 · 2 revisions

生成配置文件样例

NAME:
   Deer Executor - generate all kinds of configuration files

USAGE:
   deer-exeutor example command [command options] [arguments...]

COMMANDS:
   config      generate problem config file
   compiler    generate compiler settings file
   jit_memory  generate jit memory limitation settings file
   help, h     Shows a list of commands or help for one command

OPTIONS:
   --help, -h  show help (default: false)

子命令

config 生成题目配置文件


NAME:
   Deer Executor - generate problem config file

USAGE:
    deer-exeutor example config [arguments...]

OPTIONS:
   --output value, --out value  output config file
   --help, -h                   show help (default: false)

选项参数说明

  • --output value 指定文件位置,文件不存在将被创建,存在则不会被覆盖。如果不指定,则在控制台输出题目配置的JSON

配置文件样例

{
    "test_cases": [
        {
            "handle": "",
            "order": 0,
            "name": "",
            "input": "",
            "output": "",
            "visible": false,
            "enabled": false,
            "use_genarator": false,
            "generator": "",
            "validator_verdict": false,
            "validator_comment": ""
        }
    ],
    "time_limit": 1000,
    "memory_limit": 65535,
    "real_time_limit": 0,
    "file_size_limit": 52428800,
    "uid": -1,
    "strict_mode": true,
    "special_judge": {
        "name": "",
        "mode": 0,
        "checker_lang": "",
        "checker": "",
        "redirect_program_out": true,
        "time_limit": 1000,
        "memory_limit": 65535,
        "use_testlib": false,
        "checker_cases": [
            {
                "input": "",
                "output": "",
                "answer": "",
                "verdict": false,
                "expected_verdict": 0,
                "checker_verdict": 0,
                "checker_comment": ""
            }
        ]
    },
    "limitation": {
        "gcc": {
            "time_limit": 1000,
            "memory_limit": 65535,
            "real_time_limit": 0,
            "file_size_limit": 52428800
        }
    },
    "problem": {
        "author": "",
        "source": "",
        "description": "",
        "input": "",
        "output": "",
        "sample": [
            {
                "input": "",
                "output": ""
            }
        ],
        "tips": "",
        "problem_type": 0,
        "demo_cases": null
    },
    "testlib": {
        "version": "",
        "validator": "",
        "validator_name": "",
        "generators": [
            {
                "name": "",
                "source": ""
            }
        ],
        "validator_case": [
            {
                "input": "",
                "verdict": false,
                "expected_verdict": false,
                "validator_verdict": false,
                "validator_comment": ""
            }
        ]
    },
    "answer_cases": [
        {
            "name": "",
            "file_name": "",
            "language": "",
            "content": ""
        }
    ]
}

compiler 生成编译器配置信息


NAME:
   Deer Executor - generate compiler settings file

USAGE:
   deer-exeutor example compiler [command options] [arguments...]

OPTIONS:
   --output value, --out value  output config file
   --help, -h                   show help (default: false)


选项参数说明

  • --output value 指定文件位置,文件不存在将被创建。如果不指定,则自动输出到./compilers.json

注意!判题机默认会自动寻找./compilers.json文件并读取配置,其余位置无效。--output参数只是为了方便你额外生成文件而设置的

配置文件样例

{
    "gcc": "gcc %s -o %s -ansi -fno-asm -Wall -std=c11 -lm",
    "g++": "g++ %s -o %s -ansi -fno-asm -Wall -lm -std=c++11",
    "java": "javac -encoding utf-8 %s -d %s",
    "golang": "go build -o %s %s",
    "nodejs": "node -c %s",
    "php": "php -l -f %s",
    "ruby": "ruby -c %s",
    "python2": "python -u %s",
    "python3": "python3 -u %s"
}

这个功能是设置用于适应某些情况下无法通过环境变量获取编译器的时候,定义编译器的运行参数。

每个语言有对应的编译方式,如C语言的两个%s分别表示代码和输出,而python3只有一个%s表示源代码,因为它不需要编译后执行。如果你不清楚工作原理,建议只改编译器的路径。

jit_memory 生成JIT虚拟机的基础内存大小配置


NAME:
   Deer Executor - generate jit memory limitation settings file

USAGE:
   deer-executor example jit_memory [command options] [arguments...]

OPTIONS:
   --output value, --out value  output config file
   --help, -h                   show help (default: false)

背景:JIT虚拟机一般会占用一定的内存空间,如果一道题设置64MB,但JIT本身要用掉128MB的内存,那么会直接被rlimit干掉。这配置就是为了解决这个问题而设置的。另外,事实上rusage返回的内存占用是正确的,无须考虑这个设置对评测的内存值结果产生影响。

选项参数说明

  • --output value 指定文件位置,文件不存在将被创建。如果不指定,则自动输出到jit_memory.json

注意!判题机默认会自动寻找./jit_memory.json文件并读取配置,其余位置无效。--output参数只是为了方便你额外生成文件而设置的

配置文件样例

{
    "g++": 0,
    "gcc": 0,
    "golang": 0,
    "java": 393216,
    "nodejs": 262144,
    "php": 131072,
    "python2": 65536,
    "python3": 65536,
    "ruby": 65536
}

内存大小单位:KB

Clone this wiki locally