aboutsummarylogtreecommitdiffstats
path: root/run.sh
diff options
context:
space:
mode:
Diffstat (limited to 'run.sh')
-rwxr-xr-xrun.sh33
1 files changed, 30 insertions, 3 deletions
diff --git a/run.sh b/run.sh
index abbbfc5410af..708bb8561bdf 100755
--- a/run.sh
+++ b/run.sh
@@ -12,8 +12,10 @@ version_gt() { test "$(echo "$@" | tr " " "\n" | sort -V | head -n 1)" != "$1";
BOTTLENAME="Deepin-QQ"
APPVER="9.3.2deepin20"
WINEPREFIX="$HOME/.deepinwine/$BOTTLENAME"
+QQ_FONTS="$WINEPREFIX/drive_c/windows/Fonts"
QQ_VER="9.5.2.27897"
EXEC_PATH="c:/Program Files/Tencent/QQ/Bin/QQ.exe"
+EXEC_FILE="$WINEPREFIX/drive_c/Program Files/Tencent/QQ/Bin/QQ.exe"
START_SHELL_PATH="/opt/deepinwine/tools/run_v4.sh"
QQ_INSTALLER="PCQQ2021"
QQ_INSTALLER_PATH="c:/Program Files/Tencent/$QQ_INSTALLER-$QQ_VER.exe"
@@ -33,6 +35,28 @@ OpenWinecfg()
env WINEPREFIX=$WINEPREFIX $APPRUN_CMD winecfg
}
+DeployApp()
+{
+ # backup fonts
+ if [ -d "$QQ_FONTS" ];then
+ mkdir -p $HOME/.deepinwine/.qq_tmp
+ cp $QQ_FONTS/* $HOME/.deepinwine/.qq_tmp/
+ fi
+
+ # re-deploy bottle
+ rm -rf "$WINEPREFIX"
+ # run installer
+ env LC_ALL=zh_CN.UTF-8 WINEDLLOVERRIDES="winemenubuilder.exe=d" $START_SHELL_PATH $BOTTLENAME $APPVER "$QQ_INSTALLER_PATH" "$@"
+
+ # restore fonts
+ if [ -d "$HOME/.deepinwine/.qq_tmp" ];then
+ cp -n $HOME/.deepinwine/.qq_tmp/* $QQ_FONTS/
+ rm -rf "$HOME/.deepinwine/.qq_tmp"
+ fi
+ touch $WINEPREFIX/reinstalled
+ cat /opt/apps/$DEB_PACKAGE_NAME/files/files.md5sum > $WINEPREFIX/PACKAGE_VERSION
+}
+
Run()
{
if [ -z "$DISABLE_ATTACH_FILE_DIALOG" ];then
@@ -41,10 +65,13 @@ Run()
if [ -n "$EXEC_PATH" ];then
if [ ! -f "$WINEPREFIX/reinstalled" ];then
- # run installer
- env LC_ALL=zh_CN.UTF-8 WINEDLLOVERRIDES="winemenubuilder.exe=d" $START_SHELL_PATH $BOTTLENAME $APPVER "$QQ_INSTALLER_PATH" "$@"
- touch $WINEPREFIX/reinstalled
+ DeployApp
else
+ # missing exec file
+ if [ ! -f "$EXEC_FILE" ];then
+ DeployApp
+ fi
+
env LC_ALL=zh_CN.UTF-8 $START_SHELL_PATH $BOTTLENAME $APPVER "$EXEC_PATH" "$@"
fi
else