mirror of
https://github.com/whyour/qinglong.git
synced 2025-05-22 22:36:06 +08:00
修复获取脚本列表
This commit is contained in:
parent
46512142fa
commit
af74afd10d
|
@ -1,6 +1,7 @@
|
||||||
import {
|
import {
|
||||||
fileExist,
|
fileExist,
|
||||||
getFileContentByName,
|
getFileContentByName,
|
||||||
|
readDirs,
|
||||||
getLastModifyFilePath,
|
getLastModifyFilePath,
|
||||||
} from '../config/util';
|
} from '../config/util';
|
||||||
import { Router, Request, Response, NextFunction } from 'express';
|
import { Router, Request, Response, NextFunction } from 'express';
|
||||||
|
@ -21,53 +22,7 @@ export default (app: Router) => {
|
||||||
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 {
|
||||||
const fileList = fs.readdirSync(config.scriptPath, 'utf-8');
|
const result = readDirs(config.scriptPath, config.scriptPath);
|
||||||
|
|
||||||
let result = [];
|
|
||||||
for (let i = 0; i < fileList.length; i++) {
|
|
||||||
const fileOrDir = fileList[i];
|
|
||||||
const fPath = path.join(config.scriptPath, fileOrDir);
|
|
||||||
const dirStat = fs.statSync(fPath);
|
|
||||||
if (['node_modules', 'pnpm-lock.yaml'].includes(fileOrDir)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dirStat.isDirectory()) {
|
|
||||||
const childFileList = fs.readdirSync(fPath, 'utf-8');
|
|
||||||
let children = [];
|
|
||||||
for (let j = 0; j < childFileList.length; j++) {
|
|
||||||
const childFile = childFileList[j];
|
|
||||||
const sPath = path.join(config.scriptPath, fileOrDir, childFile);
|
|
||||||
const _fileExist = await fileExist(sPath);
|
|
||||||
if (_fileExist && fs.statSync(sPath).isFile()) {
|
|
||||||
const statObj = fs.statSync(sPath);
|
|
||||||
children.push({
|
|
||||||
title: childFile,
|
|
||||||
value: childFile,
|
|
||||||
key: `${fileOrDir}/${childFile}`,
|
|
||||||
mtime: statObj.mtimeMs,
|
|
||||||
parent: fileOrDir,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
result.push({
|
|
||||||
title: fileOrDir,
|
|
||||||
value: fileOrDir,
|
|
||||||
key: fileOrDir,
|
|
||||||
mtime: dirStat.mtimeMs,
|
|
||||||
disabled: true,
|
|
||||||
children: children.sort((a, b) => b.mtime - a.mtime),
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
result.push({
|
|
||||||
title: fileOrDir,
|
|
||||||
value: fileOrDir,
|
|
||||||
key: fileOrDir,
|
|
||||||
mtime: dirStat.mtimeMs,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
res.send({
|
res.send({
|
||||||
code: 200,
|
code: 200,
|
||||||
data: result,
|
data: result,
|
||||||
|
|
|
@ -276,3 +276,32 @@ export async function concurrentRun(
|
||||||
|
|
||||||
return replyList;
|
return replyList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function readDirs(dir: string, baseDir: string = '') {
|
||||||
|
const relativePath = path.relative(baseDir, dir);
|
||||||
|
const files = fs.readdirSync(dir);
|
||||||
|
const result: any = files.map((file: string) => {
|
||||||
|
const subPath = path.join(dir, file);
|
||||||
|
const stats = fs.statSync(subPath);
|
||||||
|
const key = path.join(relativePath, file);
|
||||||
|
if (stats.isDirectory()) {
|
||||||
|
return {
|
||||||
|
title: file,
|
||||||
|
value: file,
|
||||||
|
key,
|
||||||
|
type: 'directory',
|
||||||
|
disabled: true,
|
||||||
|
parent: relativePath,
|
||||||
|
children: readDirs(subPath, baseDir),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
title: file,
|
||||||
|
value: file,
|
||||||
|
type: 'file',
|
||||||
|
key,
|
||||||
|
parent: relativePath,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user