try fix open loopback

pull/401/head
starknt 2024-11-25 15:43:01 +08:00
parent c4e71c48ad
commit 2b0b637c44
3 changed files with 36 additions and 12 deletions

View File

@ -24,10 +24,10 @@
"@docmirror/mitmproxy": "workspace:*", "@docmirror/mitmproxy": "workspace:*",
"@mihomo-party/sysproxy": "^2.0.4", "@mihomo-party/sysproxy": "^2.0.4",
"@natmri/platform-napi": "^0.0.7", "@natmri/platform-napi": "^0.0.7",
"@vscode/sudo-prompt": "^9.3.1",
"adm-zip": "^0.5.16", "adm-zip": "^0.5.16",
"ant-design-vue": "^1.7.8", "ant-design-vue": "^1.7.8",
"electron-baidu-tongji": "^1.0.5", "electron-baidu-tongji": "^1.0.5",
"electron-sudo": "^4.0.12",
"electron-updater": "^6.3.9", "electron-updater": "^6.3.9",
"json5": "^2.2.3", "json5": "^2.2.3",
"lodash": "^4.17.21", "lodash": "^4.17.21",

View File

@ -1,14 +1,33 @@
/* global __static */
import DevSidecar from '@docmirror/dev-sidecar' import DevSidecar from '@docmirror/dev-sidecar'
import Sudoer from 'electron-sudo' import sudoPrompt from '@vscode/sudo-prompt'
import { join } from 'node:path'
import { log } from '../../utils/util.log'
export default { export default {
async open () { open () {
const options = { name: '设置loopback' } const options = {
const sudoer = new Sudoer(options) name: '设置loopback',
icns: process.platform === 'darwin' ? join(__static, 'icon.icns') : undefined,
env: { PARAM: 'VALUE' },
}
const exeFile = DevSidecar.api.shell.extraPath.getEnableLoopbackPath() const exeFile = DevSidecar.api.shell.extraPath.getEnableLoopbackPath()
await sudoer.exec( return new Promise((resolve, reject) => {
sudoPrompt.exec(
exeFile, exeFile,
{ env: { PARAM: 'VALUE' } }, options,
(error, _, stderr) => {
if (stderr) {
log.error(`[sudo-prompt] 发生错误: ${stderr}`)
}
if (error) {
reject(error)
} else {
resolve(undefined)
}
},
) )
})
}, },
} }

View File

@ -75,6 +75,9 @@ importers:
'@natmri/platform-napi': '@natmri/platform-napi':
specifier: ^0.0.7 specifier: ^0.0.7
version: 0.0.7 version: 0.0.7
'@vscode/sudo-prompt':
specifier: ^9.3.1
version: 9.3.1
adm-zip: adm-zip:
specifier: ^0.5.16 specifier: ^0.5.16
version: 0.5.16 version: 0.5.16
@ -84,9 +87,6 @@ importers:
electron-baidu-tongji: electron-baidu-tongji:
specifier: ^1.0.5 specifier: ^1.0.5
version: 1.0.5 version: 1.0.5
electron-sudo:
specifier: ^4.0.12
version: 4.0.12
electron-updater: electron-updater:
specifier: ^6.3.9 specifier: ^6.3.9
version: 6.3.9 version: 6.3.9
@ -1773,6 +1773,9 @@ packages:
vitest: vitest:
optional: true optional: true
'@vscode/sudo-prompt@9.3.1':
resolution: {integrity: sha512-9ORTwwS74VaTn38tNbQhsA5U44zkJfcb0BdTSyyG6frP4e8KMtHuTXYmwefe5dpL8XB1aGSIVTaLjD3BbWb5iA==}
'@vue/babel-helper-vue-jsx-merge-props@1.4.0': '@vue/babel-helper-vue-jsx-merge-props@1.4.0':
resolution: {integrity: sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA==} resolution: {integrity: sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA==}
@ -8940,6 +8943,8 @@ snapshots:
optionalDependencies: optionalDependencies:
typescript: 5.6.3 typescript: 5.6.3
'@vscode/sudo-prompt@9.3.1': {}
'@vue/babel-helper-vue-jsx-merge-props@1.4.0': {} '@vue/babel-helper-vue-jsx-merge-props@1.4.0': {}
'@vue/babel-helper-vue-transform-on@1.2.5': {} '@vue/babel-helper-vue-transform-on@1.2.5': {}