From a3f3a9153abb4ffcff8ce9bab56bed341c38e8dd Mon Sep 17 00:00:00 2001 From: shenmo Date: Wed, 21 Dec 2022 09:24:59 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BB=8D=E7=84=B6=E6=9C=89=E7=82=B9?= =?UTF-8?q?=E5=B0=8F=E9=97=AE=E9=A2=98=E7=9A=84=E6=9B=B4=E6=96=B0=E6=A3=80?= =?UTF-8?q?=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tool/update-upgrade/ss-do-upgrade-worker.sh | 37 ++++--- tool/update-upgrade/ss-do-upgrade.sh | 104 ++++++++++++-------- tool/update-upgrade/ss-update-notifier.sh | 47 +++++---- 3 files changed, 115 insertions(+), 73 deletions(-) diff --git a/tool/update-upgrade/ss-do-upgrade-worker.sh b/tool/update-upgrade/ss-do-upgrade-worker.sh index 37e0e58..b76ddc3 100755 --- a/tool/update-upgrade/ss-do-upgrade-worker.sh +++ b/tool/update-upgrade/ss-do-upgrade-worker.sh @@ -1,26 +1,39 @@ #!/bin/bash -if [ "$(id -u)" != "0" ];then -pkexec "$0" "$@" -exit +if [ "$(id -u)" != "0" ] ; then + pkexec "$0" "$@" + exit fi - case $1 in ssupdate) - aptss ssupdate 2>&1 | tee /tmp/spark-store-app-ssupdate-log.txt - IS_SSUPDATE_ERROR=`cat /tmp/spark-store-app-ssupdate-log.txt | grep "E: "` - echo "$IS_SSUPDATE_ERROR" > /tmp/spark-store-app-ssupdate-status.txt + aptss ssupdate 2>&1 | tee /tmp/spark-store-app-ssupdate-log.txt + IS_SSUPDATE_ERROR=`cat /tmp/spark-store-app-ssupdate-log.txt | grep "E: "` + echo "$IS_SSUPDATE_ERROR" > /tmp/spark-store-app-ssupdate-status.txt ;; + upgradable-list) - bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt list --upgradable -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" | awk 'BEGIN {FS="/"} {print $1}' | awk NR\>1 + output=$(env LANGUAGE=en_US bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt list --upgradable -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="/dev/null" -o APT::Get::List-Cleanup="0" | awk NR\>1) + + IFS_OLD="$IFS" + IFS=$'\n' + + for line in $output ; do + PKG_NAME=$(echo $line | awk -F '/' '{print $1}') + PKG_NEW_VER=$(echo $line | awk -F ' ' '{print $2}') + PKG_CUR_VER=$(echo $line | awk -F ' ' '{print $6}' | awk -F ']' '{print $1}') + echo "${PKG_NAME} ${PKG_NEW_VER} ${PKG_CUR_VER}" + done + + IFS="$IFS_OLD" ;; + upgrade-app) - aptss install "${@:2}" --only-upgrade 2>&1 | tee /tmp/spark-store-app-upgrade-log.txt - IS_UPGRADE_ERROR=`cat /tmp/spark-store-app-upgrade-log.txt | grep "Package manager quit with exit code."` - echo "$IS_UPGRADE_ERROR" > /tmp/spark-store-app-upgrade-status.txt + aptss install "${@:2}" --only-upgrade 2>&1 | tee /tmp/spark-store-app-upgrade-log.txt + IS_UPGRADE_ERROR=`cat /tmp/spark-store-app-upgrade-log.txt | grep "Package manager quit with exit code."` + echo "$IS_UPGRADE_ERROR" > /tmp/spark-store-app-upgrade-status.txt ;; clean-log) - rm -f /tmp/spark-store-app-ssupdate-status.txt /tmp/spark-store-app-ssupdate-log.txt /tmp/spark-store-app-upgrade-log.txt /tmp/spark-store-app-upgrade-status.txt + rm -f /tmp/spark-store-app-ssupdate-status.txt /tmp/spark-store-app-ssupdate-log.txt /tmp/spark-store-app-upgrade-log.txt /tmp/spark-store-app-upgrade-status.txt ;; esac diff --git a/tool/update-upgrade/ss-do-upgrade.sh b/tool/update-upgrade/ss-do-upgrade.sh index 02b6ef5..e022e47 100755 --- a/tool/update-upgrade/ss-do-upgrade.sh +++ b/tool/update-upgrade/ss-do-upgrade.sh @@ -1,58 +1,76 @@ #!/bin/bash touch /tmp/spark-store/upgradeStatus.txt -pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh ssupdate | zenity --progress --auto-close --pulsate --no-cancel --text="正在检查更新,请稍候..." --height 70 --width 400 --title="星火商店更新模块" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg -if [ -z `cat /tmp/spark-store-app-ssupdate-status.txt` != "0" ];then -echo "无错误" +# 执行 apt update +pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh ssupdate | zenity --progress --auto-close --pulsate --no-cancel --text="正在检查更新,请稍候..." --height 70 --width 400 --title="星火商店更新模块" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg + +if [ -z `cat /tmp/spark-store-app-ssupdate-status.txt` ] ; then + echo "无错误" + pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh clean-log else -zenity --error --text "检查更新进程出现错误!按确定查看报错,可用于反馈" --title "星火商店更新检测模块" --height 200 --width 350 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg -zenity --text-info --filename=/tmp/spark-store-app-ssupdate-log.txt --checkbox="我已复制了此文本框中的日志,且将会在反馈时附上 。反馈渠道可以在右上角菜单的设置中找到" --title="反馈渠道在商店右上角的设置里" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg -pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh clean-log -exit + zenity --error --text "检查更新进程出现错误!按确定查看报错,可用于反馈" --title "星火商店更新检测模块" --height 200 --width 350 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg + zenity --text-info --filename=/tmp/spark-store-app-ssupdate-log.txt --checkbox="我已复制了此文本框中的日志,且将会在反馈时附上。反馈渠道可以在右上角菜单的设置中找到" --title="反馈渠道在商店右上角的设置里" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg + pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh clean-log + exit fi -pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh clean-log -PKG_LIST="$(pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh upgradable-list)" -####如果没更新,就弹出不需要更新 -if [ -z "$PKG_LIST" ];then -zenity --info --text "没有软件需要更新\n但是你并没有站在世界之巅" --title "星火商店更新检测模块" --height 150 --width 300 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg +# 获取可更新应用列表 +PKG_LIST="$(pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh upgradable-list)" +## 如果没更新,就弹出不需要更新 +if [ -z "$PKG_LIST" ] ; then + zenity --info --text "没有软件需要更新\n但是你并没有站在世界之巅" --title "星火商店更新检测模块" --height 150 --width 300 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg else -PKG_UPGRADE_LIST=`for PKG_NAME in $PKG_LIST; -do -#### 检测是否是hold状态 - if [ "$(dpkg-query -W -f='${Status}' $PKG_NAME | grep hold)" = "" ];then - echo "true" - echo "$PKG_NAME" - echo "$PKG_NAME" - else - echo "false" - echo "$PKG_NAME(无法更新:已被标记为保留)" - echo "$PKG_NAME" + ## 指定分隔符为 \n + IFS_OLD="$IFS" + IFS=$'\n' + + ## 获取用户选择的要更新的应用 + PKG_UPGRADE_LIST=`for line in $PKG_LIST ; do + + PKG_NAME=$(echo $line | awk -F ' ' '{print $1}') + PKG_NEW_VER=$(echo $line | awk -F ' ' '{print $2}') + PKG_CUR_VER=$(echo $line | awk -F ' ' '{print $3}') + + dpkg --compare-versions $PKG_NEW_VER le $PKG_CUR_VER + if [ $? -eq 0 ] ; then + continue fi -done | zenity --list --text="选择你想更新的应用" --column=是否更新 --column=应用包名 --column="真的应用包名" --separator=" " --checklist --print-column=3 --multiple --height 350 --width 550 --hide-column=3 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg` + ### 检测是否是 hold 状态 + PKG_STA=$(dpkg-query -W -f='${db:Status-Want}' $PKG_NAME) + if [ "$PKG_STA" != "hold" ] ; then + echo "true" + echo "$PKG_NAME" + echo "$PKG_NEW_VER" + echo "$PKG_NAME" + else + echo "false" + echo "$PKG_NAME(无法更新:已被标记为保留)" + echo "$PKG_NEW_VER" + echo "$PKG_NAME" + fi +done | zenity --list --text="选择你想更新的应用" --column="是否更新" --column="包名" --column="新版本" --column="值" --separator=" " --checklist --multiple --print-column=4 --hide-column=4 --height 350 --width 550 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg` -#### 如果没有选择,则直接退出 + ## 还原分隔符 + IFS="$IFS_OLD" -if [ "$PKG_UPGRADE_LIST" = "" ];then -zenity --info --text "没有选中任何软件\n但是你并没有站在世界之巅" --title "星火商店更新检测服务" --height 150 --width 300 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg -else - -pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh upgrade-app $PKG_UPGRADE_LIST -y | zenity --progress --auto-close --no-cancel --pulsate --text=正在更新已选中的应用,请稍候... --height 70 --width 400 --title="星火商店更新模块" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg - -if [ -z "`cat /tmp/spark-store-app-upgrade-status.txt`" ];then - -zenity --info --text "选中的软件已经更新完毕" --title "星火商店更新检测模块" --height 150 --width 300 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg -else -zenity --error --text "更新出现错误!按确定查看报错,可用于反馈" --title "星火商店更新检测模块" --height 200 --width 350 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg -zenity --text-info --filename=/tmp/spark-store-app-upgrade-log.txt --checkbox="我已复制了此文本框中的日志,且将会在反馈时附上 。反馈渠道可以在右上角菜单的设置中找到" --title="反馈渠道在商店右上角的设置里往下拉" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg -fi - - - -fi + ### 如果没有选择,则直接退出 + if [ "$PKG_UPGRADE_LIST" = "" ] ; then + zenity --info --text "没有选中任何软件\n但是你并没有站在世界之巅" --title "星火商店更新检测服务" --height 150 --width 300 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg + else + ### 更新用户选择的应用 + pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh upgrade-app $PKG_UPGRADE_LIST -y | zenity --progress --auto-close --no-cancel --pulsate --text="正在更新已选中的应用,请稍候..." --height 70 --width 400 --title="星火商店更新模块" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg + #### 更新成功 + if [ -z "`cat /tmp/spark-store-app-upgrade-status.txt`" ] ; then + zenity --info --text "选中的软件已经更新完毕" --title "星火商店更新检测模块" --height 150 --width 300 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg + else + #### 更新异常 + zenity --error --text "更新出现错误!按确定查看报错,可用于反馈" --title "星火商店更新检测模块" --height 200 --width 350 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg + zenity --text-info --filename=/tmp/spark-store-app-upgrade-log.txt --checkbox="我已复制了此文本框中的日志,且将会在反馈时附上 。反馈渠道可以在右上角菜单的设置中找到" --title="反馈渠道在商店右上角的设置里往下拉" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg + fi + fi fi rm -f touch /tmp/spark-store/upgradeStatus.txt -####从最开头 +# 从最开头 diff --git a/tool/update-upgrade/ss-update-notifier.sh b/tool/update-upgrade/ss-update-notifier.sh index 6b74858..a7ea6c6 100755 --- a/tool/update-upgrade/ss-update-notifier.sh +++ b/tool/update-upgrade/ss-update-notifier.sh @@ -1,5 +1,4 @@ #!/bin/bash -set -e LANG=en.US function notify-send() { @@ -48,18 +47,11 @@ fi curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/sources.list.d/sparkstore.list" # 每日更新星火源文件 -mkdir -p /etc/apt/preferences.d -touch /etc/apt/preferences.d/sparkstore -cat << EOF >/etc/apt/preferences.d/sparkstore -Package: * -Pin: origin *.deepinos.org.cn -Pin-Priority: 100 -EOF updatetext=`aptss ssupdate` -rm /etc/apt/preferences.d/sparkstore + isupdate=`echo ${updatetext: -5}` @@ -72,24 +64,43 @@ update_app_number=`echo ${updatetext%package*} #从右向左截取第一个 src update_app_number=`echo ${update_app_number##*information...}` -PKG_LIST="$(bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt list --upgradable -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" | awk 'BEGIN {FS="/"} {print $1}' | awk NR\>1)" +PKG_LIST="$(/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh upgradable-list)" -for PKG_NAME in $PKG_LIST;do -if [ "$(dpkg-query -W -f='${Status}' $PKG_NAME | grep hold)" != "" ];then - let update_app_number=$update_app_number-1 - echo $update_app_number - echo $PKG_NAME -fi +## 指定分隔符为 \n + IFS_OLD="$IFS" + IFS=$'\n' + + ## 获取用户选择的要更新的应用 +for line in $PKG_LIST ; do + + PKG_NAME=$(echo $line | awk -F ' ' '{print $1}') + PKG_NEW_VER=$(echo $line | awk -F ' ' '{print $2}') + PKG_CUR_VER=$(echo $line | awk -F ' ' '{print $3}') + + + dpkg --compare-versions $PKG_NEW_VER le $PKG_CUR_VER + + if [ $? -eq 0 ] ; then + let update_app_number=$update_app_number-1 + continue + fi + + ### 检测是否是 hold 状态 + PKG_STA=$(dpkg-query -W -f='${db:Status-Want}' $PKG_NAME) + if [ "$PKG_STA" = "hold" ] ; then + let update_app_number=$update_app_number-1 + fi done -if [ $update_app_number -lt 1 ];then + +if [ $update_app_number -le 0 ];then exit fi -#### 如果都是hold的那就直接退出,否则把剩余的给提醒了 +#### 如果都是hold或者版本一致的那就直接退出,否则把剩余的给提醒了 notify-send -i spark-store "星火更新提醒" "星火商店仓库中有$update_app_number个软件包可以更新啦!请到星火商店的菜单处理" From 3a89394838f8a025010f7d21ee6cb24510d9bc8f Mon Sep 17 00:00:00 2001 From: zty199 <46324746+zty199@users.noreply.github.com> Date: Wed, 21 Dec 2022 12:09:59 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=8F=AF=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E5=BA=94=E7=94=A8=E5=88=97=E8=A1=A8=E4=B8=BA=E7=A9=BA?= =?UTF-8?q?=E6=97=B6=E4=BB=8D=E7=84=B6=E5=BC=B9=E5=87=BA=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E6=9B=B4=E6=96=B0=E5=AF=B9=E8=AF=9D=E6=A1=86?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 获取可更新应用列表后直接赋值给 zenity 处理,未对列表为空进行处理 Log: 获取可更新应用列表后,若列表为空则退出;不为空再交给 zenity 处理 --- tool/update-upgrade/ss-do-upgrade.sh | 39 +++++---- tool/update-upgrade/ss-update-notifier.sh | 102 ++++++++++------------ 2 files changed, 66 insertions(+), 75 deletions(-) diff --git a/tool/update-upgrade/ss-do-upgrade.sh b/tool/update-upgrade/ss-do-upgrade.sh index e022e47..cb34bb6 100755 --- a/tool/update-upgrade/ss-do-upgrade.sh +++ b/tool/update-upgrade/ss-do-upgrade.sh @@ -21,13 +21,12 @@ PKG_LIST="$(pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-wor if [ -z "$PKG_LIST" ] ; then zenity --info --text "没有软件需要更新\n但是你并没有站在世界之巅" --title "星火商店更新检测模块" --height 150 --width 300 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg else - ## 指定分隔符为 \n + ## 获取用户选择的要更新的应用 + ### 指定分隔符为 \n IFS_OLD="$IFS" IFS=$'\n' - ## 获取用户选择的要更新的应用 PKG_UPGRADE_LIST=`for line in $PKG_LIST ; do - PKG_NAME=$(echo $line | awk -F ' ' '{print $1}') PKG_NEW_VER=$(echo $line | awk -F ' ' '{print $2}') PKG_CUR_VER=$(echo $line | awk -F ' ' '{print $3}') @@ -36,7 +35,7 @@ else if [ $? -eq 0 ] ; then continue fi - ### 检测是否是 hold 状态 + #### 检测是否是 hold 状态 PKG_STA=$(dpkg-query -W -f='${db:Status-Want}' $PKG_NAME) if [ "$PKG_STA" != "hold" ] ; then echo "true" @@ -49,25 +48,31 @@ else echo "$PKG_NEW_VER" echo "$PKG_NAME" fi -done | zenity --list --text="选择你想更新的应用" --column="是否更新" --column="包名" --column="新版本" --column="值" --separator=" " --checklist --multiple --print-column=4 --hide-column=4 --height 350 --width 550 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg` +done` - ## 还原分隔符 + ### 还原分隔符 IFS="$IFS_OLD" - ### 如果没有选择,则直接退出 - if [ "$PKG_UPGRADE_LIST" = "" ] ; then + ## 如果没有应用需要更新,则直接退出 + if [ -z "$PKG_UPGRADE_LIST" ] ; then zenity --info --text "没有选中任何软件\n但是你并没有站在世界之巅" --title "星火商店更新检测服务" --height 150 --width 300 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg else - ### 更新用户选择的应用 - pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh upgrade-app $PKG_UPGRADE_LIST -y | zenity --progress --auto-close --no-cancel --pulsate --text="正在更新已选中的应用,请稍候..." --height 70 --width 400 --title="星火商店更新模块" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg - - #### 更新成功 - if [ -z "`cat /tmp/spark-store-app-upgrade-status.txt`" ] ; then - zenity --info --text "选中的软件已经更新完毕" --title "星火商店更新检测模块" --height 150 --width 300 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg + PKG_UPGRADE_LIST=$(echo "$PKG_UPGRADE_LIST" | zenity --list --text="选择你想更新的应用" --column="是否更新" --column="包名" --column="新版本" --column="值" --separator=" " --checklist --multiple --print-column=4 --hide-column=4 --height 350 --width 550 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg) + ## 如果没有选择,则直接退出 + if [ -z "$PKG_UPGRADE_LIST" ] ; then + zenity --info --text "没有选中任何软件\n但是你并没有站在世界之巅" --title "星火商店更新检测服务" --height 150 --width 300 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg else - #### 更新异常 - zenity --error --text "更新出现错误!按确定查看报错,可用于反馈" --title "星火商店更新检测模块" --height 200 --width 350 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg - zenity --text-info --filename=/tmp/spark-store-app-upgrade-log.txt --checkbox="我已复制了此文本框中的日志,且将会在反馈时附上 。反馈渠道可以在右上角菜单的设置中找到" --title="反馈渠道在商店右上角的设置里往下拉" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg + ### 更新用户选择的应用 + pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh upgrade-app $PKG_UPGRADE_LIST -y | zenity --progress --auto-close --no-cancel --pulsate --text="正在更新已选中的应用,请稍候..." --height 70 --width 400 --title="星火商店更新模块" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg + + #### 更新成功 + if [ -z "`cat /tmp/spark-store-app-upgrade-status.txt`" ] ; then + zenity --info --text "选中的软件已经更新完毕" --title "星火商店更新检测模块" --height 150 --width 300 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg + else + #### 更新异常 + zenity --error --text "更新出现错误!按确定查看报错,可用于反馈" --title "星火商店更新检测模块" --height 200 --width 350 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg + zenity --text-info --filename=/tmp/spark-store-app-upgrade-log.txt --checkbox="我已复制了此文本框中的日志,且将会在反馈时附上 。反馈渠道可以在右上角菜单的设置中找到" --title="反馈渠道在商店右上角的设置里往下拉" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg + fi fi fi fi diff --git a/tool/update-upgrade/ss-update-notifier.sh b/tool/update-upgrade/ss-update-notifier.sh index a7ea6c6..a220741 100755 --- a/tool/update-upgrade/ss-update-notifier.sh +++ b/tool/update-upgrade/ss-update-notifier.sh @@ -1,107 +1,93 @@ #!/bin/bash -LANG=en.US +LANGUAGE=en_US +# 发送通知 function notify-send() { - #Detect the name of the display in use + # Detect name of the display in use local display=":$(ls /tmp/.X11-unix/* | sed 's#/tmp/.X11-unix/X##' | head -n 1)" - #Detect the user using such display + # Detect user using the display local user=$(who | grep '('$display')' | awk '{print $1}' | head -n 1) - #Detect the id of the user + # Detect uid of the user local uid=$(id -u $user) - sudo -u $user DISPLAY=$display DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$uid/bus notify-send "$@" + su -u $user DISPLAY=$display DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/${uid}/bus notify-send "$@" } -#检测网络链接畅通 +# 检测网络链接畅通 function network() { - #超时时间 + # 超时时间 local timeout=15 - #目标网站 + # 目标网站 local target=www.baidu.com - #获取响应状态码 + # 获取响应状态码 local ret_code=`curl -I -s --connect-timeout ${timeout} ${target} -w %{http_code} | tail -n1` - if [ "x$ret_code" = "x200" ]; then - #网络畅通 + if [ "x$ret_code" = "x200" ] ; then + # 网络畅通 return 0 else - #网络不畅通 + # 网络不畅通 return 1 fi - - return 0 } network -if [ $? -eq 1 ];then - echo "Network fail. Stop to avoid bother dpkg" - exit -1 +if [ $? -ne 0 ] ; then + echo "Network fail. Stop to avoid bother dpkg" + exit -1 fi -#The code above is modified from https://blog.csdn.net/yaxuan88521/article/details/120516298 +# The code above is modified from https://blog.csdn.net/yaxuan88521/article/details/120516298 -curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/sources.list.d/sparkstore.list" # 每日更新星火源文件 - +curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/sources.list.d/sparkstore.list" updatetext=`aptss ssupdate` - - - - isupdate=`echo ${updatetext: -5}` -if [ "$isupdate" = "date." ];then -exit 0 +if [ "$isupdate" = "date." ] ; then + exit 0 fi -#### 从这里开始,只有检测到了更新才会进行 +## 从这里开始,只有检测到了更新才会进行 update_app_number=`echo ${updatetext%package*} #从右向左截取第一个 src 后的字符串` update_app_number=`echo ${update_app_number##*information...}` - +# 获取用户选择的要更新的应用 PKG_LIST="$(/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh upgradable-list)" +# 指定分隔符为 \n +IFS_OLD="$IFS" +IFS=$'\n' - - -## 指定分隔符为 \n - IFS_OLD="$IFS" - IFS=$'\n' - - ## 获取用户选择的要更新的应用 for line in $PKG_LIST ; do + PKG_NAME=$(echo $line | awk -F ' ' '{print $1}') + PKG_NEW_VER=$(echo $line | awk -F ' ' '{print $2}') + PKG_CUR_VER=$(echo $line | awk -F ' ' '{print $3}') - PKG_NAME=$(echo $line | awk -F ' ' '{print $1}') - PKG_NEW_VER=$(echo $line | awk -F ' ' '{print $2}') - PKG_CUR_VER=$(echo $line | awk -F ' ' '{print $3}') + dpkg --compare-versions $PKG_NEW_VER le $PKG_CUR_VER + if [ $? -eq 0 ] ; then + let update_app_number=$update_app_number-1 + continue + fi - dpkg --compare-versions $PKG_NEW_VER le $PKG_CUR_VER - - if [ $? -eq 0 ] ; then - let update_app_number=$update_app_number-1 - continue - fi - - ### 检测是否是 hold 状态 - PKG_STA=$(dpkg-query -W -f='${db:Status-Want}' $PKG_NAME) - if [ "$PKG_STA" = "hold" ] ; then - let update_app_number=$update_app_number-1 - fi + ## 检测是否是 hold 状态 + PKG_STA=$(dpkg-query -W -f='${db:Status-Want}' $PKG_NAME) + if [ "$PKG_STA" = "hold" ] ; then + let update_app_number=$update_app_number-1 + fi done +# 还原分隔符 +IFS="$IFS_OLD" - - -if [ $update_app_number -le 0 ];then -exit +if [ $update_app_number -le 0 ] ; then + exit 0 fi -#### 如果都是hold或者版本一致的那就直接退出,否则把剩余的给提醒了 - -notify-send -i spark-store "星火更新提醒" "星火商店仓库中有$update_app_number个软件包可以更新啦!请到星火商店的菜单处理" - +## 如果都是hold或者版本一致的那就直接退出,否则把剩余的给提醒了 +notify-send -a spark-store "星火更新提醒" "星火商店仓库中有$update_app_number个软件包可以更新啦!请到星火商店的菜单处理" From 00386c7aeb343d348edb9f2005b2d2fa25ee39e7 Mon Sep 17 00:00:00 2001 From: shenmo Date: Wed, 21 Dec 2022 13:22:41 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=96=87=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- debian/changelog | 6 ++++++ src/main.cpp | 2 +- tool/update-upgrade/ss-do-upgrade.sh | 8 ++++---- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/debian/changelog b/debian/changelog index 5e82510..7c121dd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +spark-store (4.1.0) stable; urgency=medium + + * feat: 现在可以支持UOS签名包问题了 + +-- shenmo Fri, 30 Jan 2022 00:00:00 +0800 + spark-store (4.0.1) stable; urgency=medium * feat: 提升Ubuntu下的显示效果 diff --git a/src/main.cpp b/src/main.cpp index 75ca295..ec0139e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -13,7 +13,7 @@ DWIDGET_USE_NAMESPACE int main(int argc, char *argv[]) { // Get build time - static const QString version = "Version 4.0.1"; + static const QString version = "Version 4.1.0"; static const QDate buildDate = QLocale( QLocale::English ).toDate( QString(__DATE__).replace(" ", " 0"), "MMM dd yyyy"); static const QTime buildTime = QTime::fromString(__TIME__, "hh:mm:ss"); diff --git a/tool/update-upgrade/ss-do-upgrade.sh b/tool/update-upgrade/ss-do-upgrade.sh index cb34bb6..506967a 100755 --- a/tool/update-upgrade/ss-do-upgrade.sh +++ b/tool/update-upgrade/ss-do-upgrade.sh @@ -41,12 +41,12 @@ else echo "true" echo "$PKG_NAME" echo "$PKG_NEW_VER" - echo "$PKG_NAME" + echo "$PKG_CUR_VER" else echo "false" echo "$PKG_NAME(无法更新:已被标记为保留)" echo "$PKG_NEW_VER" - echo "$PKG_NAME" + echo "$PKG_CUR_VER" fi done` @@ -55,9 +55,9 @@ done` ## 如果没有应用需要更新,则直接退出 if [ -z "$PKG_UPGRADE_LIST" ] ; then - zenity --info --text "没有选中任何软件\n但是你并没有站在世界之巅" --title "星火商店更新检测服务" --height 150 --width 300 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg + zenity --info --text "没有软件需要更新\n但是你并没有站在世界之巅" --title "星火商店更新检测服务" --height 150 --width 300 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg else - PKG_UPGRADE_LIST=$(echo "$PKG_UPGRADE_LIST" | zenity --list --text="选择你想更新的应用" --column="是否更新" --column="包名" --column="新版本" --column="值" --separator=" " --checklist --multiple --print-column=4 --hide-column=4 --height 350 --width 550 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg) + PKG_UPGRADE_LIST=$(echo "$PKG_UPGRADE_LIST" | zenity --list --text="选择你想更新的应用" --column="是否更新" --column="包名" --column="新版本" --column="从该版本更新" --separator=" " --checklist --multiple --print-column=4 --height 350 --width 550 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg) ## 如果没有选择,则直接退出 if [ -z "$PKG_UPGRADE_LIST" ] ; then zenity --info --text "没有选中任何软件\n但是你并没有站在世界之巅" --title "星火商店更新检测服务" --height 150 --width 300 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg