报错处理
This commit is contained in:
parent
585f777832
commit
91ab92af3f
3 changed files with 29 additions and 16 deletions
31
main.py
31
main.py
|
@ -79,24 +79,25 @@ class Api:
|
|||
if callable(command):
|
||||
command = command()
|
||||
custom_event(command + "\n")
|
||||
with Popen(
|
||||
command,
|
||||
stdout=PIPE,
|
||||
stderr=STDOUT,
|
||||
shell=True,
|
||||
bufsize=1,
|
||||
text=True,
|
||||
cwd=cwd,
|
||||
encoding="utf-8",
|
||||
) as p:
|
||||
for line in p.stdout:
|
||||
custom_event(line)
|
||||
try:
|
||||
with Popen(
|
||||
command, stdout=PIPE, stderr=STDOUT, shell=True, cwd=cwd, bufsize=0
|
||||
) as p:
|
||||
for data in p.stdout:
|
||||
try:
|
||||
text = data.decode("utf-8")
|
||||
except Exception:
|
||||
text = data.decode("gbk")
|
||||
custom_event(text)
|
||||
if p.returncode == 0:
|
||||
return "success"
|
||||
except Exception as e:
|
||||
custom_event(str(e))
|
||||
return "failed"
|
||||
|
||||
|
||||
window = webview.create_window(
|
||||
f"mower-ng launcher {version}",
|
||||
"ui/dist/index.html",
|
||||
js_api=Api(),
|
||||
f"mower-ng launcher {version}", "ui/dist/index.html", js_api=Api()
|
||||
)
|
||||
webview.start()
|
||||
|
||||
|
|
|
@ -17,7 +17,16 @@ async function start() {
|
|||
current_step.value = i + 1
|
||||
current_state.value = 'process'
|
||||
for (const cmd of step.command) {
|
||||
await pywebview.api.run(cmd, step.cwd)
|
||||
if ((await pywebview.api.run(cmd, step.cwd)) == 'failed') {
|
||||
current_state.value = 'error'
|
||||
running.value = false
|
||||
notification['error']({
|
||||
content: '错误',
|
||||
meta: '命令运行失败',
|
||||
duration: 3000
|
||||
})
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
current_state.value = 'finish'
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
<script setup>
|
||||
const running = inject('running')
|
||||
const notification = useNotification()
|
||||
async function rm_site_packages() {
|
||||
running.value = true
|
||||
notification['info']({
|
||||
content: '提示',
|
||||
meta: '开始移除site-packages',
|
||||
|
@ -12,6 +14,7 @@ async function rm_site_packages() {
|
|||
meta: response,
|
||||
duration: 3000
|
||||
})
|
||||
running.value = false
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
Loading…
Reference in a new issue