mirror of
https://gh.catmak.name/https://github.com/mihomo-party-org/mihomo-party
synced 2026-02-10 19:50:28 +08:00
fix: ensure consistent current profile id when diffWorkDir enabled
This commit is contained in:
parent
75f2522a99
commit
fbde5c3f09
@ -56,7 +56,7 @@ function processRulesWithOffset(ruleStrings: string[], currentRules: string[], i
|
||||
return { normalRules, insertRules: rules }
|
||||
}
|
||||
|
||||
export async function generateProfile(): Promise<void> {
|
||||
export async function generateProfile(): Promise<string | undefined> {
|
||||
// 读取最新的配置
|
||||
const { current } = await getProfileConfig(true)
|
||||
const {
|
||||
@ -150,6 +150,7 @@ export async function generateProfile(): Promise<void> {
|
||||
diffWorkDir ? mihomoWorkConfigPath(current) : mihomoWorkConfigPath('work'),
|
||||
runtimeConfigStr
|
||||
)
|
||||
return current
|
||||
}
|
||||
|
||||
async function prepareProfileWorkDir(current: string | undefined): Promise<void> {
|
||||
|
||||
@ -13,7 +13,6 @@ import { generateProfile } from './factory'
|
||||
import {
|
||||
getAppConfig,
|
||||
getControledMihomoConfig,
|
||||
getProfileConfig,
|
||||
patchAppConfig,
|
||||
patchControledMihomoConfig,
|
||||
manageSmartOverride
|
||||
@ -130,15 +129,15 @@ export async function startCore(detached = false): Promise<Promise<void>[]> {
|
||||
await rm(path.join(dataDir(), 'core.pid'))
|
||||
}
|
||||
}
|
||||
const { current } = await getProfileConfig(true)
|
||||
const { tun } = await getControledMihomoConfig()
|
||||
const corePath = mihomoCorePath(core)
|
||||
|
||||
// 管理 Smart 内核覆写配置
|
||||
await manageSmartOverride()
|
||||
|
||||
await generateProfile()
|
||||
await checkProfile()
|
||||
// generateProfile 返回实际使用的 current,确保内核工作目录与配置文件一致
|
||||
const current = await generateProfile()
|
||||
await checkProfile(current)
|
||||
await stopCore()
|
||||
|
||||
await cleanupSocketFile()
|
||||
@ -453,9 +452,8 @@ export async function quitWithoutCore(): Promise<void> {
|
||||
app.exit()
|
||||
}
|
||||
|
||||
async function checkProfile(): Promise<void> {
|
||||
async function checkProfile(current: string | undefined): Promise<void> {
|
||||
const { core = 'mihomo', diffWorkDir = false } = await getAppConfig()
|
||||
const { current } = await getProfileConfig()
|
||||
const corePath = mihomoCorePath(core)
|
||||
const execFilePromise = promisify(execFile)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user