judge: fix langs config

This commit is contained in:
undefined committed 2020-10-27 21:57:36 +08:00
1 parent aad53cf51e
commit 59b38130b6
2 files changed
+14 -6

No files matched your search

+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@hydrooj/hydrojudge",
"bin": "bin/hydrojudge.js",
"version": "2.1.2",
"version": "2.1.3",
"main": "package.json",
"author": "masnn",
"dependencies": {
+13 -5
View File
@@ -4,10 +4,10 @@ import { argv } from 'yargs';
import os from 'os';
import path from 'path';
import fs from 'fs-extra';
import yaml from 'js-yaml';
import log from './log';
export let CONFIG_FILE = path.resolve(os.homedir(), '.config', 'hydro', 'judge.yaml');
export let LANGS_FILE = path.resolve(os.homedir(), '.config', 'hydro', 'langs.yaml');
export let CACHE_DIR = path.resolve(os.homedir(), '.cache', 'hydro', 'judge');
export let FILES_DIR = path.resolve(os.homedir(), '.cache', 'hydro', 'files', 'judge');
export let SYSTEM_MEMORY_LIMIT_MB = 1024;
@@ -19,6 +19,8 @@ export let EXECUTION_HOST = 'http://localhost:5050';
export let CONFIG = null;
export let LANGS = null;
let LANGS_FILE = path.resolve(os.homedir(), '.config', 'hydro', 'langs.yaml');
if (fs.existsSync(path.resolve(process.cwd(), '.env'))) {
const env = {};
const f = fs.readFileSync('.env').toString();
@@ -47,10 +49,16 @@ if (process.env.FILES_DIR || argv.files) {
if (process.env.EXECUTION_HOST || argv.execute) {
EXECUTION_HOST = path.resolve(process.env.EXECUTION_HOST || argv.execute as string);
}
if (!(fs.existsSync(LANGS_FILE) || global.Hydro)) {
fs.ensureDirSync(path.dirname(LANGS_FILE));
if (fs.existsSync(path.join(__dirname, '..', 'examples', 'langs.yaml'))) {
if (!global.Hydro) {
if (fs.existsSync(LANGS_FILE)) LANGS = yaml.safeLoad(fs.readFileSync(LANGS_FILE).toString());
else {
log.error('Language file not found, using default.');
const file = path.join(path.dirname(require.resolve('@hydrooj/hydrojudge')), 'setting.yaml');
const content = yaml.safeLoad(fs.readFileSync(file).toString()) as any;
LANGS = yaml.safeLoad(content.langs.default) as any;
}
if (!(fs.existsSync(LANGS_FILE) || global.Hydro)) {
fs.ensureDirSync(path.dirname(LANGS_FILE));
LANGS_FILE = path.join(__dirname, '..', 'examples', 'langs.yaml');
} else throw new Error('Language file not found');
}
}