From ad050ba1fbf5a496072280c515400acc0c4aa5a1 Mon Sep 17 00:00:00 2001 From: undefined Date: Wed, 10 Aug 2022 01:47:31 +0800 Subject: [PATCH] judge: remove /nix path prefix --- package.json | 2 +- packages/hydrojudge/package.json | 2 +- packages/hydrojudge/src/hosts/hydro.ts | 10 +++++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index db87b8c56..dcefba9f9 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "@types/autocannon": "^7.6.1", "@types/cross-spawn": "^6.0.2", "@types/mocha": "^9.1.1", - "@types/node": "^18.6.4", + "@types/node": "^18.6.5", "@types/semver": "^7.3.10", "@types/supertest": "^2.0.12", "@typescript-eslint/eslint-plugin": "^5.29.0", diff --git a/packages/hydrojudge/package.json b/packages/hydrojudge/package.json index 6bad6ed71..9a8cd2f1b 100644 --- a/packages/hydrojudge/package.json +++ b/packages/hydrojudge/package.json @@ -1,7 +1,7 @@ { "name": "@hydrooj/hydrojudge", "bin": "bin/hydrojudge.js", - "version": "2.22.7", + "version": "2.22.8", "main": "package.json", "author": "undefined ", "repository": "https://github.com/hydro-dev/Hydro.git", diff --git a/packages/hydrojudge/src/hosts/hydro.ts b/packages/hydrojudge/src/hosts/hydro.ts index 4f549a2c1..9de6b9e8a 100644 --- a/packages/hydrojudge/src/hosts/hydro.ts +++ b/packages/hydrojudge/src/hosts/hydro.ts @@ -24,6 +24,10 @@ import { const argv = cac().parse(); +function removeNixPath(text: string) { + return text.replace(/\/nix\/store\/[a-z0-9]{32}-/g, '/nix/'); +} + class JudgeTask { stat: Record; session: any; @@ -137,7 +141,9 @@ class JudgeTask { log.debug('Next: %d %o', data); data.key = 'next'; data.rid = new ObjectID(this.rid); - if (data.case) data.case.message ||= ''; + if (data.case) data.case.message = removeNixPath(data.case.message || ''); + if (typeof data.message === 'string') data.message = removeNixPath(data.message); + if (typeof data.compilerText === 'string') data.compilerText = removeNixPath(data.compilerText); this.ws.send(JSON.stringify(data)); } @@ -145,6 +151,8 @@ class JudgeTask { log.info('End: %o', data); data.key = 'end'; data.rid = this.request.rid; + if (typeof data.message === 'string') data.message = removeNixPath(data.message); + if (typeof data.compilerText === 'string') data.compilerText = removeNixPath(data.compilerText); this.ws.send(JSON.stringify(data)); } }