mirror of
https://github.com/TheFunny/ArisuAutoSweeper
synced 2025-12-31 15:15:28 +00:00
60 lines
1.7 KiB
TypeScript
60 lines
1.7 KiB
TypeScript
import {ALAS_CONFIG_YAML} from '@common/constant/config';
|
|
import {getAlasABSPath, checkIsFirst} from '@common/utils';
|
|
import {ThemeObj} from '@common/constant/theme';
|
|
import {Dirent} from 'fs';
|
|
const path = require('path');
|
|
const yaml = require('yaml');
|
|
const fs = require('fs');
|
|
|
|
let alasConfig: AlasConfig | null = null;
|
|
export async function getAlasConfig() {
|
|
if (alasConfig === null) {
|
|
const alasPath = getAlasABSPath();
|
|
const file = fs.readFileSync(path.join(alasPath, `./config/${ALAS_CONFIG_YAML}`), 'utf8');
|
|
const config = yaml.parse(file) as DefAlasConfig;
|
|
const WebuiPort = config.Deploy.Webui.WebuiPort.toString();
|
|
const Theme = config.Deploy.Webui.Theme;
|
|
alasConfig = {
|
|
webuiUrl: `http://127.0.0.1:${WebuiPort}`,
|
|
theme: ThemeObj[Theme] || 'light',
|
|
language: config.Deploy.Webui.Language || 'en-US',
|
|
repository: config.Deploy.Git.Repository as any,
|
|
alasPath,
|
|
};
|
|
}
|
|
return alasConfig;
|
|
}
|
|
|
|
export function checkIsNeedInstall() {
|
|
return checkIsFirst();
|
|
}
|
|
|
|
interface fileInfoItem {
|
|
name: string;
|
|
path: string;
|
|
lastModifyTime: Date;
|
|
}
|
|
export function getAlasConfigDirFiles() {
|
|
const alasPath = getAlasABSPath();
|
|
const configPath = path.join(alasPath, `./config`);
|
|
const files: Dirent[] = fs.readdirSync(configPath, {withFileTypes: true});
|
|
const filesInfoList: fileInfoItem[] = files.map((file: Dirent) => {
|
|
const name = file.name;
|
|
const filePath = path.join(configPath, name);
|
|
return {
|
|
name,
|
|
path: filePath,
|
|
lastModifyTime: getFileUpdateDate(filePath),
|
|
};
|
|
});
|
|
return {
|
|
configPath,
|
|
files: filesInfoList,
|
|
};
|
|
}
|
|
|
|
export function getFileUpdateDate(path: string) {
|
|
const stat = fs.statSync(path);
|
|
return stat.mtime;
|
|
}
|