mirror of
https://github.com/whyour/qinglong.git
synced 2025-05-22 22:36:06 +08:00
修改获取配置文件接口,初始化系统配置
This commit is contained in:
parent
1a94a660a5
commit
8283f62db2
|
@ -48,27 +48,24 @@ export default (app: Router) => {
|
||||||
);
|
);
|
||||||
|
|
||||||
route.get(
|
route.get(
|
||||||
'/:file',
|
'/detail',
|
||||||
async (req: Request, res: Response, next: NextFunction) => {
|
async (req: Request, res: Response, next: NextFunction) => {
|
||||||
const logger: Logger = Container.get('logger');
|
const logger: Logger = Container.get('logger');
|
||||||
try {
|
try {
|
||||||
let content = '';
|
let content = '';
|
||||||
if (config.blackFileList.includes(req.params.file)) {
|
const _path = req.query.path as string;
|
||||||
|
if (config.blackFileList.includes(_path) || !_path) {
|
||||||
res.send({ code: 403, message: '文件无法访问' });
|
res.send({ code: 403, message: '文件无法访问' });
|
||||||
}
|
}
|
||||||
if (req.params.file.startsWith('sample/')) {
|
if (_path.startsWith('sample/')) {
|
||||||
const res = await got.get(
|
const res = await got.get(
|
||||||
`https://gitlab.com/whyour/qinglong/-/raw/master/${req.params.file}`,
|
`https://gitlab.com/whyour/qinglong/-/raw/master/${_path}`,
|
||||||
);
|
);
|
||||||
content = res.body;
|
content = res.body;
|
||||||
} else if (req.params.file.startsWith('data/scripts/')) {
|
} else if (_path.startsWith('data/scripts/')) {
|
||||||
content = await getFileContentByName(
|
content = await getFileContentByName(join(config.rootPath, _path));
|
||||||
join(config.rootPath, req.params.file),
|
|
||||||
);
|
|
||||||
} else {
|
} else {
|
||||||
content = await getFileContentByName(
|
content = await getFileContentByName(join(config.configPath, _path));
|
||||||
join(config.configPath, req.params.file),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
res.send({ code: 200, data: content });
|
res.send({ code: 200, data: content });
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
|
@ -9,6 +9,7 @@ import { Op } from 'sequelize';
|
||||||
import config from '../config';
|
import config from '../config';
|
||||||
import { CrontabViewModel, CronViewType } from '../data/cronView';
|
import { CrontabViewModel, CronViewType } from '../data/cronView';
|
||||||
import { initPosition } from '../data/env';
|
import { initPosition } from '../data/env';
|
||||||
|
import { AuthDataType, SystemModel } from '../data/system';
|
||||||
|
|
||||||
export default async () => {
|
export default async () => {
|
||||||
const cronService = Container.get(CronService);
|
const cronService = Container.get(CronService);
|
||||||
|
@ -127,4 +128,7 @@ export default async () => {
|
||||||
// 初始化保存一次ck和定时任务数据
|
// 初始化保存一次ck和定时任务数据
|
||||||
await cronService.autosave_crontab();
|
await cronService.autosave_crontab();
|
||||||
await envService.set_envs();
|
await envService.set_envs();
|
||||||
|
|
||||||
|
// 初始化增加系统配置
|
||||||
|
await SystemModel.upsert({ type: AuthDataType.systemConfig });
|
||||||
};
|
};
|
||||||
|
|
|
@ -284,7 +284,7 @@ export default class SystemService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public async updateSystem() {
|
public async updateSystem() {
|
||||||
const cp = spawn('no_tee=true ql update false', { shell: '/bin/bash' });
|
const cp = spawn('real_time=true ql update false', { shell: '/bin/bash' });
|
||||||
|
|
||||||
cp.stdout.on('data', (data) => {
|
cp.stdout.on('data', (data) => {
|
||||||
this.sockService.sendMessage({
|
this.sockService.sendMessage({
|
||||||
|
@ -311,7 +311,7 @@ export default class SystemService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public async reloadSystem(target: 'system' | 'data') {
|
public async reloadSystem(target: 'system' | 'data') {
|
||||||
const cmd = `no_tee=true ql reload ${target || ''}`;
|
const cmd = `real_time=true ql reload ${target || ''}`;
|
||||||
const cp = spawn(cmd, { shell: '/bin/bash' });
|
const cp = spawn(cmd, { shell: '/bin/bash' });
|
||||||
|
|
||||||
cp.stdout.on('data', (data) => {
|
cp.stdout.on('data', (data) => {
|
||||||
|
|
|
@ -40,6 +40,7 @@ RUN set -x \
|
||||||
openssh \
|
openssh \
|
||||||
procps \
|
procps \
|
||||||
netcat-openbsd \
|
netcat-openbsd \
|
||||||
|
unzip \
|
||||||
npm \
|
npm \
|
||||||
&& rm -rf /var/cache/apk/* \
|
&& rm -rf /var/cache/apk/* \
|
||||||
&& apk update \
|
&& apk update \
|
||||||
|
|
|
@ -476,6 +476,9 @@ main() {
|
||||||
if [[ "$no_tee" == "true" ]]; then
|
if [[ "$no_tee" == "true" ]]; then
|
||||||
cmd=">> $file_path 2>&1"
|
cmd=">> $file_path 2>&1"
|
||||||
fi
|
fi
|
||||||
|
if [[ "$real_time" == "true" ]]; then
|
||||||
|
cmd=""
|
||||||
|
fi
|
||||||
|
|
||||||
local time_format="%Y-%m-%d %H:%M:%S"
|
local time_format="%Y-%m-%d %H:%M:%S"
|
||||||
local time=$(date "+$time_format")
|
local time=$(date "+$time_format")
|
||||||
|
|
|
@ -30,11 +30,13 @@ const Config = () => {
|
||||||
const [language, setLanguage] = useState<string>('shell');
|
const [language, setLanguage] = useState<string>('shell');
|
||||||
|
|
||||||
const getConfig = (name: string) => {
|
const getConfig = (name: string) => {
|
||||||
request.get(`${config.apiPrefix}configs/${name}`).then(({ code, data }) => {
|
request
|
||||||
if (code === 200) {
|
.get(`${config.apiPrefix}configs/detail?path=${encodeURIComponent(name)}`)
|
||||||
setValue(data);
|
.then(({ code, data }) => {
|
||||||
}
|
if (code === 200) {
|
||||||
});
|
setValue(data);
|
||||||
|
}
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const getFiles = () => {
|
const getFiles = () => {
|
||||||
|
|
|
@ -26,7 +26,7 @@ const Diff = () => {
|
||||||
|
|
||||||
const getConfig = () => {
|
const getConfig = () => {
|
||||||
request
|
request
|
||||||
.get(`${config.apiPrefix}configs/${encodeURIComponent(current)}`)
|
.get(`${config.apiPrefix}configs/detail?path=${encodeURIComponent(current)}`)
|
||||||
.then(({ code, data }) => {
|
.then(({ code, data }) => {
|
||||||
if (code === 200) {
|
if (code === 200) {
|
||||||
setCurrentValue(data);
|
setCurrentValue(data);
|
||||||
|
@ -36,7 +36,7 @@ const Diff = () => {
|
||||||
|
|
||||||
const getSample = () => {
|
const getSample = () => {
|
||||||
request
|
request
|
||||||
.get(`${config.apiPrefix}configs/${encodeURIComponent(origin)}`)
|
.get(`${config.apiPrefix}configs/detail?path=${encodeURIComponent(origin)}`)
|
||||||
.then(({ code, data }) => {
|
.then(({ code, data }) => {
|
||||||
if (code === 200) {
|
if (code === 200) {
|
||||||
setOriginValue(data);
|
setOriginValue(data);
|
||||||
|
|
|
@ -3,6 +3,7 @@ const baseUrl = window.__ENV__QlBaseUrl || '/';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
siteName: intl.get('青龙'),
|
siteName: intl.get('青龙'),
|
||||||
|
baseUrl,
|
||||||
apiPrefix: `${baseUrl}api/`,
|
apiPrefix: `${baseUrl}api/`,
|
||||||
authKey: 'token',
|
authKey: 'token',
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import * as Sentry from '@sentry/react';
|
import * as Sentry from '@sentry/react';
|
||||||
import { loader } from '@monaco-editor/react';
|
import { loader } from '@monaco-editor/react';
|
||||||
|
import config from './config';
|
||||||
|
|
||||||
export function init(version: string) {
|
export function init(version: string) {
|
||||||
// sentry监控 init
|
// sentry监控 init
|
||||||
|
@ -26,7 +27,7 @@ export function init(version: string) {
|
||||||
// monaco 编辑器配置cdn和locale
|
// monaco 编辑器配置cdn和locale
|
||||||
loader.config({
|
loader.config({
|
||||||
paths: {
|
paths: {
|
||||||
vs: '/monaco-editor/min/vs',
|
vs: `${config.baseUrl}monaco-editor/min/vs`,
|
||||||
},
|
},
|
||||||
'vs/nls': {
|
'vs/nls': {
|
||||||
availableLanguages: {
|
availableLanguages: {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user