judge: fix copyIn

pull/15/head
undefined 4 years ago
parent 51a6b8b9c4
commit 4798153ce9

@ -1,9 +1,10 @@
{
"name": "@hydrooj/hydrojudge",
"bin": "bin/hydrojudge.js",
"version": "2.1.11",
"version": "2.1.12",
"main": "package.json",
"author": "masnn",
"repository": "https://github.com/hydro-dev/Hydro.git",
"dependencies": {
"axios": "^0.21.0",
"bson": "^4.1.0",

@ -22,7 +22,7 @@ export async function check(config): Promise<[number, number, string]> {
}
export async function compileChecker(checkerType: string, checker: string, copyIn: any) {
if (!checkers[checkerType]) { throw new SystemError(`未知比较器类型:${checkerType}`); }
if (!checkers[checkerType]) throw new SystemError(`未知比较器类型:${checkerType}`);
const file = await fs.readFile(checker);
// TODO cache compiled checker
return await compile(parseFilename(checker).split('.')[1], file.toString(), 'checker', copyIn);

@ -123,7 +123,9 @@ export const judge = async (ctx) => {
return await compile(ctx.lang, ctx.code, 'code', copyIn, ctx.next);
})(),
(async () => {
if (!ctx.config.checker_type || ctx.config.checker_type === 'default') return null;
if (!ctx.config.checker_type || ctx.config.checker_type === 'default') {
return { execute: '', copyIn: {}, clean: Promise.resolve };
}
const copyIn = {};
for (const file of ctx.config.judge_extra_files) {
copyIn[parseFilename(file)] = { src: file };
@ -135,8 +137,7 @@ export const judge = async (ctx) => {
);
})(),
]);
if (ctx.checker) ctx.clean.push(ctx.checker.clean);
ctx.clean.push(ctx.execute.clean);
ctx.clean.push(ctx.execute.clean, ctx.checker.clean);
ctx.next({ status: STATUS.STATUS_JUDGING, progress: 0 });
const tasks = [];
ctx.total_status = 0;

Loading…
Cancel
Save