mirror of
https://github.com/pompurin404/mihomo-party.git
synced 2024-11-16 03:32:17 +08:00
setup logs
This commit is contained in:
parent
8463175779
commit
85e1c27274
|
@ -15,6 +15,9 @@ export function initDirs(): void {
|
||||||
if (!fs.existsSync(mihomoWorkDir())) {
|
if (!fs.existsSync(mihomoWorkDir())) {
|
||||||
fs.mkdirSync(mihomoWorkDir())
|
fs.mkdirSync(mihomoWorkDir())
|
||||||
}
|
}
|
||||||
|
if (!fs.existsSync(logDir())) {
|
||||||
|
fs.mkdirSync(logDir())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function mihomoCoreDir(): string {
|
export function mihomoCoreDir(): string {
|
||||||
|
@ -57,3 +60,13 @@ export function mihomoWorkDir(): string {
|
||||||
export function mihomoWorkConfigPath(): string {
|
export function mihomoWorkConfigPath(): string {
|
||||||
return path.join(mihomoWorkDir(), 'config.yaml')
|
return path.join(mihomoWorkDir(), 'config.yaml')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function logDir(): string {
|
||||||
|
return path.join(dataDir, 'logs')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function logPath(): string {
|
||||||
|
const date = new Date()
|
||||||
|
const name = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`
|
||||||
|
return path.join(logDir(), `${name}.log`)
|
||||||
|
}
|
||||||
|
|
|
@ -1,15 +1,35 @@
|
||||||
import { execFile, ChildProcess } from 'child_process'
|
import { ChildProcess, execSync, spawn } from 'child_process'
|
||||||
import { mihomoCorePath, mihomoWorkDir } from './dirs'
|
import { logPath, mihomoCorePath, mihomoWorkDir } from './dirs'
|
||||||
import { generateProfile } from './factory'
|
import { generateProfile } from './factory'
|
||||||
import { appConfig } from './config'
|
import { appConfig } from './config'
|
||||||
|
import fs from 'fs'
|
||||||
let child: ChildProcess
|
let child: ChildProcess
|
||||||
|
|
||||||
export function startCore(): void {
|
export async function startCore(): Promise<void> {
|
||||||
const corePath = mihomoCorePath(appConfig.core ?? 'mihomo')
|
const corePath = mihomoCorePath(appConfig.core ?? 'mihomo')
|
||||||
generateProfile()
|
generateProfile()
|
||||||
stopCore()
|
stopCore()
|
||||||
child = execFile(corePath, ['-d', mihomoWorkDir()], () => {})
|
if (process.platform !== 'win32') {
|
||||||
|
execSync(`chmod +x ${corePath}`)
|
||||||
|
}
|
||||||
|
child = spawn(corePath, ['-d', mihomoWorkDir()])
|
||||||
|
child.stdout?.on('data', (data) => {
|
||||||
|
fs.writeFileSync(
|
||||||
|
logPath(),
|
||||||
|
data
|
||||||
|
.toString()
|
||||||
|
.split('\n')
|
||||||
|
.map((line: string) => {
|
||||||
|
if (line) return `[Mihomo]: ${line}`
|
||||||
|
return ''
|
||||||
|
})
|
||||||
|
.filter(Boolean)
|
||||||
|
.join('\n'),
|
||||||
|
{
|
||||||
|
flag: 'a'
|
||||||
|
}
|
||||||
|
)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function stopCore(): void {
|
export function stopCore(): void {
|
||||||
|
|
|
@ -62,7 +62,10 @@ const MihomoCoreCard: React.FC = () => {
|
||||||
onAction={async (key) => {
|
onAction={async (key) => {
|
||||||
await patchAppConfig({ core: key as 'mihomo' | 'mihomo-alpha' })
|
await patchAppConfig({ core: key as 'mihomo' | 'mihomo-alpha' })
|
||||||
await restartCore()
|
await restartCore()
|
||||||
await mutate()
|
mutate()
|
||||||
|
setTimeout(() => {
|
||||||
|
mutate()
|
||||||
|
}, 200)
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<DropdownItem key="mihomo">{CoreMap['mihomo']}</DropdownItem>
|
<DropdownItem key="mihomo">{CoreMap['mihomo']}</DropdownItem>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user