summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJingbei Li2017-06-17 15:54:37 +0800
committerJingbei Li2017-06-17 15:54:37 +0800
commitc9e1c984b03ba5f37f978e85e7cd6c570ffed1da (patch)
tree0f347363c7a49a5c53ef271169d4d18b473a71a3
parent36e30e6aa877fdeb7e7fc9eeb3bbe0839fb4d8ee (diff)
downloadaur-c9e1c984b03ba5f37f978e85e7cd6c570ffed1da.tar.gz
reinstall qq
-rw-r--r--PKGBUILD24
-rwxr-xr-xrun.sh102
2 files changed, 117 insertions, 9 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 41d2b37e2919..f22bb299062a 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,6 +1,7 @@
# Maintainer: Jingbei Li <i@jingbei.li>
pkgname=deepin-qq-im
pkgver=8.9.19983deepin18
+_qqver=8.9.3
pkgrel=2
pkgdesc="Tencent QQ Client on Deepin Wine"
arch=("x86_64")
@@ -8,15 +9,20 @@ url="http://www.deepin.com/"
license=('custom')
depends=('p7zip' 'wine' 'xorg-xwininfo' 'xdotool' 'wine-mono')
_mirror="https://mirrors.tuna.tsinghua.edu.cn/deepin"
-source=("$_mirror/pool/non-free/d/deepin.com.qq.im/deepin.com.qq.im_${pkgver}_i386.deb")
-md5sums=('8ca84426078fd973c336ef6d68bf05cb')
+source=("$_mirror/pool/non-free/d/deepin.com.qq.im/deepin.com.qq.im_${pkgver}_i386.deb"
+ "http://dldir1.qq.com/qqfile/qq/QQ${_qqver}/21149/QQ${_qqver}.exe"
+ "run.sh")
+md5sums=('8ca84426078fd973c336ef6d68bf05cb'
+ '53cbda2c19734160c75af43a6107b759'
+ '1572a7c41ef720f94bfed13e0e002d05')
package() {
- cd ${srcdir}
- tar -xvf data.tar.xz -C ${pkgdir}
- cd ${pkgdir}
- mv usr/local/share usr/share
- rmdir usr/local
- chmod -x usr/share/applications/deepin.com.qq.im.desktop
- sed '30a\sed -i "s/deepin-wine/wine/" $1/drive_c/deepin/EnvInit.sh' -i opt/deepinwine/apps/Deepin-QQ/run.sh
+ cd ${srcdir}
+ tar -xvf data.tar.xz -C ${pkgdir}
+ cd ${pkgdir}
+ mv usr/local/share usr/share
+ rmdir usr/local
+ chmod -x usr/share/applications/deepin.com.qq.im.desktop
+ rm opt/deepinwine/apps/Deepin-QQ/run.sh
+ cp ${srcdir}/{run.sh,QQ$_qqver.exe} -i opt/deepinwine/apps/Deepin-QQ/
}
diff --git a/run.sh b/run.sh
new file mode 100755
index 000000000000..31b047bee47d
--- /dev/null
+++ b/run.sh
@@ -0,0 +1,102 @@
+#!/bin/sh
+
+# Copyright (C) 2016 Deepin, Inc.
+#
+# Author: Li LongYu <lilongyu@linuxdeepin.com>
+# Peng Hao <penghao@linuxdeepin.com>
+
+WINEPREFIX="$HOME/.deepinwine/Deepin-QQ"
+APPDIR="/opt/deepinwine/apps/Deepin-QQ"
+APPVER="8.9.19983deepin18"
+QQVER="8.9.3"
+APPTAR="files.7z"
+PACKAGENAME="deepin.com.qq.im"
+
+HelpApp()
+{
+ echo " Extra Commands:"
+ echo " -r/--reset Reset app to fix errors"
+ echo " -e/--remove Remove deployed app files"
+ echo " -h/--help Show program help info"
+}
+CallApp()
+{
+ if [ ! -f $WINEPREFIX/reinstalled ]
+ then
+ touch $WINEPREFIX/reinstalled
+ env WINEPREFIX=$WINEPREFIX wine $APPDIR/QQ$QQVER.exe
+ else
+ bash "$WINEPREFIX/drive_c/deepin/EnvInit.sh"
+ fi
+}
+ExtractApp()
+{
+ mkdir -p "$1"
+ 7z x "$APPDIR/$APPTAR" -o"$1"
+ mv "$1/drive_c/users/@current_user@" "$1/drive_c/users/$USER"
+ sed -i "s#@current_user@#$USER#" $1/*.reg
+ sed -i "s/deepin-wine/wine/" $1/drive_c/deepin/EnvInit.sh
+}
+DeployApp()
+{
+ ExtractApp "$WINEPREFIX"
+ echo "$APPVER" > "$WINEPREFIX/PACKAGE_VERSION"
+}
+RemoveApp()
+{
+ rm -rf "$WINEPREFIX"
+}
+ResetApp()
+{
+ echo "Reset $PACKAGENAME....."
+ read -p "* Are you sure?(Y/N)" ANSWER
+ if [ "$ANSWER" = "Y" -o "$ANSWER" = "y" -o -z "$ANSWER" ]; then
+ EvacuateApp
+ DeployApp
+ CallApp
+ fi
+}
+UpdateApp()
+{
+ if [ -f "$WINEPREFIX/PACKAGE_VERSION" ] && [ "$(cat "$WINEPREFIX/PACKAGE_VERSION")" = "$APPVER" ]; then
+ return
+ fi
+ if [ -d "${WINEPREFIX}.tmpdir" ]; then
+ rm -rf "${WINEPREFIX}.tmpdir"
+ fi
+ ExtractApp "${WINEPREFIX}.tmpdir"
+ /opt/deepinwine/tools/updater -s "${WINEPREFIX}.tmpdir" -c "${WINEPREFIX}" -v
+ rm -rf "${WINEPREFIX}.tmpdir"
+ echo "$APPVER" > "$WINEPREFIX/PACKAGE_VERSION"
+}
+RunApp()
+{
+ if [ -d "$WINEPREFIX" ]; then
+ UpdateApp
+ else
+ DeployApp
+ fi
+ CallApp
+}
+
+if [ -z $1 ]; then
+ RunApp
+ exit 0
+fi
+case $1 in
+ "-r" | "--reset")
+ ResetApp
+ ;;
+ "-e" | "--remove")
+ RemoveApp
+ ;;
+ "-h" | "--help")
+ HelpApp
+ ;;
+ *)
+ echo "Invalid option: $1"
+ echo "Use -h|--help to get help"
+ exit 1
+ ;;
+esac
+exit 0