diff --git a/package.json b/package.json index ed8aecf7..0770b3b7 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "workspaces": [ "packages/*" ], + "main": "package.json", "scripts": { "build": "node build/build.js", "build:watch": "node build/build.js --watch", diff --git a/packages/customize b/packages/customize index 627cbb94..88b1f57a 160000 --- a/packages/customize +++ b/packages/customize @@ -1 +1 @@ -Subproject commit 627cbb9437268b82a74c6fabb85e3480ec6ad1fc +Subproject commit 88b1f57a84f4db58489fec74897cdd961d35c1a5 diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 1b1ab109..ce3db972 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.13.58", + "version": "2.13.59", "bin": "bin/hydrooj.js", "main": "dist/loader.js", "typings": "dist/loader.d.ts", @@ -32,6 +32,7 @@ "superagent": "^6.1.0", "supports-color": "^7.2.0", "systeminformation": "^4.30.1", + "wtfnode": "^0.8.4", "yargs": "^16.1.1" }, "devDependencies": { @@ -49,6 +50,7 @@ "@types/sockjs": "^0.3.32", "@types/superagent": "^4.1.8", "@types/supports-color": "^7.2.0", + "@types/wtfnode": "^0.7.0", "@types/yargs": "^15.0.10" }, "scripts": { diff --git a/packages/hydrooj/src/loader.ts b/packages/hydrooj/src/loader.ts index 4907c560..23a868e2 100644 --- a/packages/hydrooj/src/loader.ts +++ b/packages/hydrooj/src/loader.ts @@ -6,6 +6,7 @@ import './interface'; import os from 'os'; import path from 'path'; import cluster from 'cluster'; +import wtfnode from 'wtfnode'; import fs from 'fs-extra'; import { argv } from 'yargs'; import AdmZip from 'adm-zip'; @@ -47,9 +48,13 @@ import { Logger } from './logger'; import * as bus from './service/bus'; const logger = new Logger('loader'); +wtfnode.setLogger('error', logger.error.bind(logger)); +wtfnode.setLogger('warn', logger.warn.bind(logger)); +wtfnode.setLogger('info', logger.info.bind(logger)); logger.debug('%o', argv); async function terminate() { + wtfnode.dump(); try { await bus.parallel('app/exit'); } catch (e) { @@ -156,7 +161,7 @@ export function addon(addonPath: string) { if (fs.existsSync(publicPath)) fs.copySync(publicPath, publicTemp); global.addons.push(modulePath); } catch (e) { - throw new Error(`Addon not found: ${addonPath}`); + logger.error(`Addon not found: ${addonPath}`); } } else if (modulePath.endsWith('.hydro')) { try { @@ -180,7 +185,7 @@ export function addon(addonPath: string) { logger.error('Addon load fail: ', e); throw e; } - } else throw new Error(`Addon not found: ${addonPath}`); + } else logger.error(`Addon not found: ${addonPath}`); } process.on('unhandledRejection', logger.error); diff --git a/packages/hydrooj/src/model/setting.ts b/packages/hydrooj/src/model/setting.ts index 0cf40c9e..f32916bc 100644 --- a/packages/hydrooj/src/model/setting.ts +++ b/packages/hydrooj/src/model/setting.ts @@ -140,6 +140,7 @@ SystemSetting( Setting('setting_session', 'session.unsaved_expire_seconds', null, 3600 * 3, 'number', 'Unsaved session expire seconds'), Setting('setting_storage', 'db.ver', null, 0, 'number', 'Database version', null, FLAG_DISABLED | FLAG_HIDDEN), Setting('setting_storage', 'user', null, 1, 'number', 'User Counter', null, FLAG_DISABLED | FLAG_HIDDEN), + Setting('setting_storage', 'installid', null, String.random(64), 'text', 'Installation ID', null, FLAG_HIDDEN | FLAG_DISABLED), ); bus.once('app/started', async () => {