优化wine运行器更新策略

This commit is contained in:
gfdgd xi 2023-04-05 16:53:09 +08:00
parent cc9298f6af
commit 8a061efa2b
28 changed files with 64 additions and 4 deletions

@ -11,6 +11,7 @@
# 引入所需的库 # 引入所需的库
################# #################
import os import os
import updatekiller
def AddSparkStoreSource(): def AddSparkStoreSource():
# Download and install key # Download and install key

@ -14,6 +14,7 @@ import os
import sys import sys
import json import json
import pyquery import pyquery
import updatekiller
import req as requests import req as requests
import urllib.parse as parse import urllib.parse as parse

@ -15,6 +15,7 @@ import sys
import base64 import base64
import json import json
import traceback import traceback
import updatekiller
import urllib.request import urllib.request
import req as requests import req as requests
import PyQt5.QtWidgets as QtWidgets import PyQt5.QtWidgets as QtWidgets

@ -13,6 +13,7 @@
import os import os
import sys import sys
import traceback import traceback
import updatekiller
import PyQt5.QtGui as QtGui import PyQt5.QtGui as QtGui
import PyQt5.QtCore as QtCore import PyQt5.QtCore as QtCore
import PyQt5.QtWidgets as QtWidgets import PyQt5.QtWidgets as QtWidgets

@ -12,6 +12,7 @@ import sys
import time import time
import json import json
import random import random
import updatekiller
# 阉割 Android 应用安装功能 # 阉割 Android 应用安装功能
#import uengineapi #import uengineapi
import platform import platform

@ -13,6 +13,7 @@
import os import os
import sys import sys
import json import json
import updatekiller
import traceback import traceback
import req as requests import req as requests
def exit(): def exit():

@ -14,6 +14,7 @@ import os
import sys import sys
import json import json
import shutil import shutil
import updatekiller
import req as requests import req as requests
homePath = os.path.expanduser('~') homePath = os.path.expanduser('~')
try: try:

@ -12,6 +12,7 @@
################# #################
import os import os
import sys import sys
import updatekiller
import traceback import traceback
import pyquery import pyquery

@ -13,6 +13,7 @@
import os import os
import sys import sys
import json import json
import updatekiller
import req as requests import req as requests
try: try:
sourcesList = [ sourcesList = [

@ -13,6 +13,7 @@
import os import os
import sys import sys
import json import json
import updatekiller
import req as requests import req as requests
try: try:
sourcesList = [ sourcesList = [

@ -13,6 +13,7 @@
import os import os
import sys import sys
import json import json
import updatekiller
import req as requests import req as requests
try: try:
sourcesList = [ sourcesList = [

@ -13,6 +13,7 @@
import os import os
import sys import sys
import json import json
import updatekiller
import req as requests import req as requests
try: try:
sourcesList = [ sourcesList = [

@ -13,6 +13,7 @@
import os import os
import sys import sys
import json import json
import updatekiller
import req as requests import req as requests
try: try:
sourcesList = [ sourcesList = [

@ -11,6 +11,7 @@
# 引入所需的库 # 引入所需的库
################# #################
import os import os
import updatekiller
def InstallWithDeepinSource(program): def InstallWithDeepinSource(program):
os.system(f"sudo cp '{programPath}/deepin.list' /etc/apt/sources.list.d/deepin20-withwinerunner.list") os.system(f"sudo cp '{programPath}/deepin.list' /etc/apt/sources.list.d/deepin20-withwinerunner.list")

@ -12,6 +12,7 @@
################# #################
import os import os
import webbrowser import webbrowser
import updatekiller
def YesOrNo(): def YesOrNo():
if input().replace(" ", "").upper() == "N": if input().replace(" ", "").upper() == "N":

@ -28,6 +28,7 @@ package:
cp -rv QemuDownload.py deb/opt/apps/deepin-wine-runner cp -rv QemuDownload.py deb/opt/apps/deepin-wine-runner
cp -rv QemuRun.py deb/opt/apps/deepin-wine-runner cp -rv QemuRun.py deb/opt/apps/deepin-wine-runner
cp -rv kill.sh deb/opt/apps/deepin-wine-runner cp -rv kill.sh deb/opt/apps/deepin-wine-runner
cp -rv updatekiller.py deb/opt/apps/deepin-wine-runner
cp -rv InstallWineOnDeepin23Alpha.py deb/opt/apps/deepin-wine-runner cp -rv InstallWineOnDeepin23Alpha.py deb/opt/apps/deepin-wine-runner
cp -rv wrestool deb/opt/apps/deepin-wine-runner cp -rv wrestool deb/opt/apps/deepin-wine-runner
cp -rv Mount.sh deb/opt/apps/deepin-wine-runner cp -rv Mount.sh deb/opt/apps/deepin-wine-runner
@ -142,7 +143,7 @@ install:
sudo apt reinstall ./spark-deepin-wine-runner.deb -y --allow-downgrades sudo apt reinstall ./spark-deepin-wine-runner.deb -y --allow-downgrades
remove: remove:
sudo apt purge spark-deepin-wine-runner sudo apt purge spark-deepin-wine-runner -y
run: run:
python3 mainwindow.py python3 mainwindow.py

@ -3,6 +3,7 @@ import os
import sys import sys
import base64 import base64
import traceback import traceback
import updatekiller
import req as requests import req as requests
import PyQt5.QtGui as QtGui import PyQt5.QtGui as QtGui
import PyQt5.QtCore as QtCore import PyQt5.QtCore as QtCore

@ -13,6 +13,7 @@ import os
import shutil import shutil
import random import random
import sys import sys
import updatekiller
import json import json
import traceback import traceback
import requests import requests

@ -2,6 +2,7 @@
import os import os
import sys import sys
import getpass import getpass
import updatekiller
import PyQt5.QtWidgets as QtWidgets import PyQt5.QtWidgets as QtWidgets
if __name__ == "__main__": if __name__ == "__main__":

@ -1,5 +1,6 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import os import os
import updatekiller
if __name__ == "__main__": if __name__ == "__main__":
print(''' print('''

@ -3,6 +3,7 @@ import os
import sys import sys
import json import json
import time import time
import updatekiller
import random import random
import xpinyin import xpinyin
import traceback import traceback

@ -13,6 +13,7 @@
import os import os
import sys import sys
import json import json
import updatekiller
import threading import threading
import PyQt5.QtWidgets as QtWidgets import PyQt5.QtWidgets as QtWidgets

@ -15,6 +15,7 @@ import json
import shutil import shutil
import random import random
import pathlib import pathlib
import updatekiller
import threading import threading
import traceback import traceback
import subprocess import subprocess

@ -1,6 +1,7 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import os import os
import sys import sys
import updatekiller
import threading import threading
import PyQt5.QtGui as QtGui import PyQt5.QtGui as QtGui
import PyQt5.QtWidgets as QtWidgets import PyQt5.QtWidgets as QtWidgets

@ -12,6 +12,7 @@
################# #################
import os import os
import sys import sys
import updatekiller
################### ###################
# 程序所需事件 # 程序所需事件

@ -13,6 +13,7 @@ import os
import shutil import shutil
import random import random
import sys import sys
import updatekiller
import json import json
import traceback import traceback
import requests import requests

@ -22,6 +22,7 @@ import platform
import threading import threading
import traceback import traceback
import webbrowser import webbrowser
import updatekiller
import subprocess import subprocess
import req as requests import req as requests
import urllib.parse as parse import urllib.parse as parse
@ -1122,7 +1123,7 @@ class UpdateWindow():
updateWidgetLayout = QtWidgets.QGridLayout() updateWidgetLayout = QtWidgets.QGridLayout()
versionLabel = QtWidgets.QLabel(f"当前版本:{version}\n最新版本:未知\n更新内容:") versionLabel = QtWidgets.QLabel(f"当前版本:{version}\n最新版本:未知\n更新内容:")
updateText = QtWidgets.QTextBrowser() updateText = QtWidgets.QTextBrowser()
ok = QtWidgets.QPushButton(transla.transe("U", "更新(更新后需要自行手动重启程序")) ok = QtWidgets.QPushButton(transla.transe("U", "更新(更新时会自动关闭 Wine 运行器"))
ok.clicked.connect(UpdateWindow.Update) ok.clicked.connect(UpdateWindow.Update)
cancel = QtWidgets.QPushButton("取消") cancel = QtWidgets.QPushButton("取消")
cancel.clicked.connect(UpdateWindow.update.close) cancel.clicked.connect(UpdateWindow.update.close)
@ -1177,8 +1178,8 @@ class UpdateWindow():
write_txt("/tmp/spark-deepin-wine-runner/update.sh", f"""#!/bin/bash write_txt("/tmp/spark-deepin-wine-runner/update.sh", f"""#!/bin/bash
echo 删除多余的安装包 echo 删除多余的安装包
rm -rfv /tmp/spark-deepin-wine-runner/update/* rm -rfv /tmp/spark-deepin-wine-runner/update/*
#echo 关闭“Wine 运行器”以及其它“Python 应用 echo 关闭Wine 运行器
#killall python3 python3 "{programPath}/updatekiller.py"
echo 下载安装包 echo 下载安装包
wget -P /tmp/spark-deepin-wine-runner/update {UpdateWindow.data["Url"][0]} wget -P /tmp/spark-deepin-wine-runner/update {UpdateWindow.data["Url"][0]}
echo 安装安装包 echo 安装安装包

33
updatekiller.py Executable file

@ -0,0 +1,33 @@
#!/usr/bin/env python3
import sys
import os
import atexit
PIDFILE = '/tmp/deepin-wine-runner.pid'
#程序结束时清理pid
@atexit.register
def remove_pid():
with open(PIDFILE) as pidfile:
pidlst = pidfile.readlines()
pidlst.remove(str(PID)+'\n')
with open(PIDFILE,'w') as pidfile:
pidfile.writelines(pidlst)
#更新时结束进程
def main():
for i in open(PIDFILE):
try:
os.kill(int(i),15)
except ProcessLookupError:
pass
os.remove(PIDFILE)
#当该程序被直接执行时执行结束进程操作。如果是导入的形式则只是记录pid
if __name__ == '__main__':
sys.exit(main())
else:
#获取进程pid用于更新时结束进程
PID = os.getpid()
with open(PIDFILE,'a') as pidfile:
print(PID,file=pidfile) #使用print可以在行末输出换行符而且可以省去类型转换