支持彩色编译信息输出

This commit is contained in:
undefined committed 2020-06-18 13:14:39 +08:00
1 parent f293e1f59e
commit d040b153a1
18 files changed
+130 -59

No files matched your search

+21 -9
View File
@@ -2,12 +2,13 @@
/* eslint-disable no-eval */
const os = require('os');
const fs = require('fs');
const yaml = require('js-yaml');
const builtinLib = [
'axios', 'download', 'i18n', 'mail', 'markdown',
'md5', 'misc', 'paginate', 'hash.hydro', 'rank',
'template', 'validator', 'nav', 'sysinfo', 'testdata.convert.ini',
'readConfig', 'logger',
'readConfig', 'logger', 'useragent',
];
const builtinModel = [
@@ -60,17 +61,28 @@ async function locale(pending, fail) {
}
}
async function config(pending, fail, system) {
async function setting(pending, fail, modelSetting, modelSystem) {
const map = {
system: modelSetting.SystemSetting,
account: modelSetting.AccountSetting,
preference: modelSetting.PreferenceSetting,
};
for (const i of pending) {
const p = `${os.tmpdir()}/hydro/tmp/${i}/config.js`;
const p = `${os.tmpdir()}/hydro/tmp/${i}/setting.yaml`;
if (fs.existsSync(p) && !fail.includes(i)) {
try {
global.Hydro.config[i] = eval('require')(p);
for (const key in global.Hydro.config[i]) {
if (global.Hydro.config[i][key].default) {
const current = await system.get(`${i}.${key}`);
if (!current) await system.set(`${i}.${key}`, global.Hydro.config[i][key].default);
const cfg = yaml.safeLoad(fs.readFileSync(p).toString());
for (const key in cfg) {
if (cfg[key].default && modelSystem) {
const current = await modelSystem.get(`${i}.${key}`);
if (!current) await modelSystem.set(`${i}.${key}`, cfg[key].default);
}
map[cfg[key].category || 'system'](
modelSetting.Setting(
i, `${i}.${key}`, cfg[key].range, cfg[key].default,
cfg[key].type || 'text', cfg[key].name || key, cfg[key].desc || '',
),
);
}
} catch (e) {
console.error(`Config Load Fail: ${i}`);
@@ -177,5 +189,5 @@ module.exports = {
script,
service,
template,
config,
setting,
};
+6 -5
View File
@@ -4,7 +4,7 @@ const os = require('os');
const fs = require('fs');
const path = require('path');
const {
lib, service, model, config,
lib, service, model, setting,
builtinLib, builtinHandler, builtinModel,
} = require('./common');
@@ -61,13 +61,14 @@ async function load(call) {
await global.Hydro.model[m].ensureIndexes();
}
}
const system = require('../model/system');
const dbVer = await system.get('db.ver');
const modelSystem = require('../model/system');
const modelSetting = require('../model/setting');
const dbVer = await modelSystem.get('db.ver');
if (dbVer !== 1) {
const ins = require('../script/install');
await ins.run({ username: 'Root', password: 'rootroot' });
}
await config(pending, fail);
await setting(pending, fail, modelSetting, modelSystem);
for (const i in global.Hydro.service) {
if (global.Hydro.service[i].postInit) {
try {
@@ -78,7 +79,7 @@ async function load(call) {
}
}
pending = [];
return { fail, active };
return await modelSystem.get('server.worker');
}
module.exports = load;
+6
View File
@@ -56,6 +56,12 @@ async function load() {
JSON.stringify(m.locale),
);
}
if (m.setting) {
fs.writeFileSync(
`${os.tmpdir()}/hydro/tmp/${id}/setting.yaml`,
m.setting,
);
}
if (m.template) {
fs.writeFileSync(
`${os.tmpdir()}/hydro/tmp/${id}/template.json`,
+3 -1
View File
@@ -1,7 +1,7 @@
/* eslint-disable no-await-in-loop */
/* eslint-disable import/no-dynamic-require */
const {
locale, template, lib, service, model, handler, script,
locale, template, lib, service, model, handler, script, setting,
builtinLib, builtinScript, builtinHandler, builtinModel,
} = require('./common');
@@ -34,6 +34,8 @@ async function load() {
for (const i of builtinModel) require(`../model/${i}`);
for (const i of builtinHandler) require(`../handler/${i}`);
await model(pending, fail);
const modelSetting = require('../model/setting');
await setting(pending, fail, modelSetting);
await handler(pending, fail);
for (const i in global.Hydro.handler) {
await global.Hydro.handler[i]();