报错处理

This commit is contained in:
zhbaor 2024-10-10 10:48:01 +08:00
parent 585f777832
commit 91ab92af3f
3 changed files with 29 additions and 16 deletions

31
main.py
View file

@ -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()

View file

@ -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'

View file

@ -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>