mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-17 09:36:08 +08:00
core: loader: set addon prio
This commit is contained in:
1 parent
27ef93a1d0
commit
eaa03e594b
4 files changed
+17
-14
No files matched your search
+4
-3
@@ -15,12 +15,13 @@
|
||||
"lint:ci": "eslint packages --ext ts",
|
||||
"lint:ui": "yarn run --cwd=packages/ui-default eslint . --fix",
|
||||
"lint:ui:ci": "yarn run --cwd=packages/ui-default eslint .",
|
||||
"snowpack": "cd packages/ui-default && snowpack dev",
|
||||
"pub": "node build/publish",
|
||||
"jest": "node build/jest",
|
||||
"typedoc": "cross-env NODE_OPTIONS=--max_old_space_size=8192 typedoc",
|
||||
"debug": "node --async-stack-traces --trace-deprecation --enable-source-maps build/start --debug --template",
|
||||
"start": "node build/start",
|
||||
"debug:all": "node --async-stack-traces --trace-deprecation --enable-source-maps build/start --debug --template",
|
||||
"debug": "node --async-stack-traces --trace-deprecation --enable-source-maps node_modules/.bin/hydrooj --debug --template",
|
||||
"start:all": "node build/start",
|
||||
"start": "node node_modules/.bin/hydrooj",
|
||||
"clean": "zsh -c \"rm -rf tsconfig.build.tsbuildinfo ./packages/*/tsconfig.tsbuildinfo ./packages/*/dist ./.coverage\""
|
||||
},
|
||||
"version": "1.0.0",
|
||||
|
||||
@@ -7,6 +7,14 @@ const fs = require('fs-extra');
|
||||
const { argv } = require('yargs');
|
||||
const child = require('child_process');
|
||||
|
||||
function buildUrl(opts) {
|
||||
let mongourl = `${opts.protocol || 'mongodb'}://`;
|
||||
if (opts.username) mongourl += `${opts.username}:${opts.password}@`;
|
||||
mongourl += `${opts.host}:${opts.port}/${opts.name}`;
|
||||
if (opts.url) mongourl = opts.url;
|
||||
return mongourl;
|
||||
}
|
||||
|
||||
if (!cluster.isMaster) {
|
||||
const hydro = require('../dist/loader');
|
||||
// Forked by hydro
|
||||
@@ -22,13 +30,6 @@ if (!cluster.isMaster) {
|
||||
let addons = JSON.parse(fs.readFileSync(addonPath).toString());
|
||||
|
||||
if (argv._[0] === 'db') {
|
||||
function buildUrl(opts) {
|
||||
let mongourl = `${opts.protocol || 'mongodb'}://`;
|
||||
if (opts.username) mongourl += `${opts.username}:${opts.password}@`;
|
||||
mongourl += `${opts.host}:${opts.port}/${opts.name}`;
|
||||
if (opts.url) mongourl = opts.url;
|
||||
return mongourl;
|
||||
}
|
||||
const dbConfig = fs.readFileSync(path.resolve(hydroPath, 'config.json'), 'utf-8');
|
||||
const url = buildUrl(JSON.parse(dbConfig));
|
||||
return child.spawn('mongo', [url], { stdio: 'inherit' });
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "hydrooj",
|
||||
"version": "2.26.28",
|
||||
"version": "2.26.29",
|
||||
"bin": "bin/hydrooj.js",
|
||||
"main": "dist/loader.js",
|
||||
"typings": "dist/loader.d.ts",
|
||||
|
||||
@@ -135,7 +135,7 @@ process.on('uncaughtException', logger.error);
|
||||
|
||||
const publicTemp = path.resolve(os.tmpdir(), 'hydro', 'public');
|
||||
|
||||
export function addon(addonPath: string) {
|
||||
export function addon(addonPath: string, prepend = false) {
|
||||
if (!(fs.existsSync(addonPath) && fs.statSync(addonPath).isFile())) {
|
||||
try {
|
||||
// Is a npm package
|
||||
@@ -143,7 +143,8 @@ export function addon(addonPath: string) {
|
||||
const modulePath = path.dirname(packagejson);
|
||||
const publicPath = path.resolve(modulePath, 'public');
|
||||
if (fs.existsSync(publicPath)) fs.copySync(publicPath, publicTemp);
|
||||
global.addons.push(modulePath);
|
||||
if (prepend) global.addons.unshift(modulePath);
|
||||
else global.addons.push(modulePath);
|
||||
} catch (e) {
|
||||
logger.error(`Addon not found: ${addonPath}`);
|
||||
}
|
||||
@@ -151,7 +152,7 @@ export function addon(addonPath: string) {
|
||||
}
|
||||
|
||||
export async function load() {
|
||||
addon(path.resolve(__dirname, '..'));
|
||||
addon(path.resolve(__dirname, '..'), true);
|
||||
Error.stackTraceLimit = 50;
|
||||
if (cluster.isMaster || argv.startAsMaster) {
|
||||
logger.info(`Master ${process.pid} Starting`);
|
||||
|
||||
Reference in new issue
Block a user