mirror of
https://gh.catmak.name/https://github.com/mihomo-party-org/mihomo-party
synced 2026-02-10 11:40:28 +08:00
feat: add Fish and Nushell support for environment variables
This commit is contained in:
parent
d2f700a0ef
commit
dae4939390
@ -460,26 +460,42 @@ async function updateTrayMenu(): Promise<void> {
|
||||
}
|
||||
}
|
||||
|
||||
export async function copyEnv(type: 'bash' | 'cmd' | 'powershell'): Promise<void> {
|
||||
export async function copyEnv(
|
||||
type: 'bash' | 'cmd' | 'powershell' | 'fish' | 'nushell'
|
||||
): Promise<void> {
|
||||
const { 'mixed-port': mixedPort = 7890 } = await getControledMihomoConfig()
|
||||
const { sysProxy } = await getAppConfig()
|
||||
const { host } = sysProxy
|
||||
const proxyUrl = `http://${host || '127.0.0.1'}:${mixedPort}`
|
||||
|
||||
switch (type) {
|
||||
case 'bash': {
|
||||
clipboard.writeText(
|
||||
`export https_proxy=http://${host || '127.0.0.1'}:${mixedPort} http_proxy=http://${host || '127.0.0.1'}:${mixedPort} all_proxy=http://${host || '127.0.0.1'}:${mixedPort}`
|
||||
`export https_proxy=${proxyUrl} http_proxy=${proxyUrl} all_proxy=${proxyUrl}`
|
||||
)
|
||||
break
|
||||
}
|
||||
case 'cmd': {
|
||||
clipboard.writeText(
|
||||
`set http_proxy=http://${host || '127.0.0.1'}:${mixedPort}\r\nset https_proxy=http://${host || '127.0.0.1'}:${mixedPort}`
|
||||
`set http_proxy=${proxyUrl}\r\nset https_proxy=${proxyUrl}`
|
||||
)
|
||||
break
|
||||
}
|
||||
case 'powershell': {
|
||||
clipboard.writeText(
|
||||
`$env:HTTP_PROXY="http://${host || '127.0.0.1'}:${mixedPort}"; $env:HTTPS_PROXY="http://${host || '127.0.0.1'}:${mixedPort}"`
|
||||
`$env:HTTP_PROXY="${proxyUrl}"; $env:HTTPS_PROXY="${proxyUrl}"`
|
||||
)
|
||||
break
|
||||
}
|
||||
case 'fish': {
|
||||
clipboard.writeText(
|
||||
`set -x http_proxy ${proxyUrl}; set -x https_proxy ${proxyUrl}; set -x all_proxy ${proxyUrl}`
|
||||
)
|
||||
break
|
||||
}
|
||||
case 'nushell': {
|
||||
clipboard.writeText(
|
||||
`$env.HTTP_PROXY = "${proxyUrl}"; $env.HTTPS_PROXY = "${proxyUrl}"; $env.ALL_PROXY = "${proxyUrl}"`
|
||||
)
|
||||
break
|
||||
}
|
||||
|
||||
@ -249,7 +249,7 @@ const GeneralConfig: React.FC = () => {
|
||||
onSelectionChange={async (v) => {
|
||||
try {
|
||||
await patchAppConfig({
|
||||
envType: Array.from(v) as ('bash' | 'cmd' | 'powershell')[]
|
||||
envType: Array.from(v) as ('bash' | 'cmd' | 'powershell' | 'fish' | 'nushell')[]
|
||||
})
|
||||
} catch (e) {
|
||||
toast.error(String(e))
|
||||
@ -259,6 +259,8 @@ const GeneralConfig: React.FC = () => {
|
||||
<SelectItem key="bash">Bash</SelectItem>
|
||||
<SelectItem key="cmd">CMD</SelectItem>
|
||||
<SelectItem key="powershell">PowerShell</SelectItem>
|
||||
<SelectItem key="fish">Fish</SelectItem>
|
||||
<SelectItem key="nushell">Nushell</SelectItem>
|
||||
</Select>
|
||||
</SettingItem>
|
||||
<SettingItem title={t('settings.showFloatingWindow')} divider>
|
||||
|
||||
@ -100,7 +100,7 @@ interface IpcApi {
|
||||
setupFirewall: () => Promise<void>
|
||||
getInterfaces: () => Promise<Record<string, NetworkInterfaceInfo[]>>
|
||||
setNativeTheme: (theme: 'system' | 'light' | 'dark') => Promise<void>
|
||||
copyEnv: (type: 'bash' | 'cmd' | 'powershell') => Promise<void>
|
||||
copyEnv: (type: 'bash' | 'cmd' | 'powershell' | 'fish' | 'nushell') => Promise<void>
|
||||
// Update
|
||||
checkUpdate: () => Promise<IAppVersion | undefined>
|
||||
downloadAndInstallUpdate: (version: string) => Promise<void>
|
||||
|
||||
2
src/shared/types.d.ts
vendored
2
src/shared/types.d.ts
vendored
@ -235,7 +235,7 @@ interface IAppConfig {
|
||||
proxyDisplayMode: 'simple' | 'full'
|
||||
proxyDisplayOrder: 'default' | 'delay' | 'name'
|
||||
profileDisplayDate?: 'expire' | 'update'
|
||||
envType?: ('bash' | 'cmd' | 'powershell')[]
|
||||
envType?: ('bash' | 'cmd' | 'powershell' | 'fish' | 'nushell')[]
|
||||
proxyCols: 'auto' | '1' | '2' | '3' | '4'
|
||||
hideUnavailableProxies?: boolean
|
||||
connectionDirection: 'asc' | 'desc'
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user