新增:更新界面支持显示软件名称

This commit is contained in:
2023-11-15 17:47:26 +08:00
parent c5d3dadbbb
commit c2daaad86c
6 changed files with 54 additions and 8 deletions

View File

@@ -3,7 +3,46 @@
source /opt/durapps/spark-store/bin/bashimport/transhell.amber
load_transhell_debug
function get_name_from_desktop_file() {
local app_name_in_desktop
local name_orig
local name_i18n
local package_name
package_name=$1
for desktop_file_path in $(dpkg -L "$package_name" |grep /usr/share/applications/ | awk '/\.desktop$/ {print}'); do
if [ "$(grep -m 1 '^NoDisplay=' "$desktop_file_path" | cut -d '=' -f 2)" = "true" ] || [ "$(grep -m 1 '^NoDisplay=' "$desktop_file_path" | cut -d '=' -f 2)" = "True" ];then
continue
else
name_orig=$(grep -m 1 '^Name=' "$desktop_file_path" | cut -d '=' -f 2)
name_i18n=$(grep -m 1 "^Name\[${LANGUAGE}\]\=" "$desktop_file_path" | cut -d '=' -f 2)
if [ -z "$name_i18n" ] ;then
app_name_in_desktop=$name_orig
else
app_name_in_desktop=$name_i18n
fi
fi
done
for desktop_file_path in $(dpkg -L "$package_name" |grep /opt/apps/$package_name/entries/applications | awk '/\.desktop$/ {print}'); do
if [ "$(grep -m 1 '^NoDisplay=' "$desktop_file_path" | cut -d '=' -f 2)" = "true" ] || [ "$(grep -m 1 '^NoDisplay=' "$desktop_file_path" | cut -d '=' -f 2)" = "True" ];then
continue
else
name_orig=$(grep -m 1 '^Name=' "$desktop_file_path" | cut -d '=' -f 2)
name_i18n=$(grep -m 1 "^Name\[${LANGUAGE}\]\=" "$desktop_file_path" | cut -d '=' -f 2)
if [ -z "$name_i18n" ] ;then
app_name_in_desktop=$name_orig
else
app_name_in_desktop=$name_i18n
fi
fi
done
if [ -z "$app_name_in_desktop" ] ;then
app_name_in_desktop=${package_name}
fi
echo ${app_name_in_desktop}
}
touch /tmp/spark-store/upgradeStatus.txt
# 执行 apt update
@@ -30,7 +69,7 @@ else
IFS_OLD="$IFS"
IFS=$'\n'
PKG_UPGRADE_LIST=`for line in $PKG_LIST ; do
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}')
@@ -39,20 +78,23 @@ else
if [ $? -eq 0 ] ; then
continue
fi
APP_NAME=$(get_name_from_desktop_file $PKG_NAME)
#### 检测是否是 hold 状态
PKG_STA=$(dpkg-query -W -f='${db:Status-Want}' $PKG_NAME)
if [ "$PKG_STA" != "hold" ] ; then
echo "true"
echo "$PKG_NAME"
echo "$APP_NAME"
echo "$PKG_NEW_VER"
echo "$PKG_CUR_VER"
echo "$PKG_NAME"
else
echo "false"
echo "$PKG_NAME${TRANSHELL_CONTENT_CAN_NOT_UPGRADE_FOR_BEING_HOLD}"
echo "$APP_NAME${TRANSHELL_CONTENT_CAN_NOT_UPGRADE_FOR_BEING_HOLD}"
echo "$PKG_NEW_VER"
echo "$PKG_CUR_VER"
echo "$PKG_NAME"
fi
done`
done)
### 还原分隔符
IFS="$IFS_OLD"
@@ -61,7 +103,7 @@ done`
if [ -z "$PKG_UPGRADE_LIST" ] ; then
zenity --info --text "${TRANSHELL_CONTENT_NO_NEED_TO_UPGRADE}" --title "${TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_MODEL}" --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="${TRANSHELL_CONTENT_CHOOSE_APP_TO_UPGRADE}" --column="${TRANSHELL_CONTENT_CHOOSE}" --column="${TRANSHELL_CONTENT_PKG_NAME}" --column="${TRANSHELL_CONTENT_NEW_VERSION}" --column="${TRANSHELL_CONTENT_UPGRADE_FROM}" --separator=" " --checklist --multiple --print-column=2 --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="${TRANSHELL_CONTENT_CHOOSE_APP_TO_UPGRADE}" --column="${TRANSHELL_CONTENT_CHOOSE}" --column="${TRANSHELL_CONTENT_APP_NAME}" --column="${TRANSHELL_CONTENT_NEW_VERSION}" --column="${TRANSHELL_CONTENT_UPGRADE_FROM}" --column="${TRANSHELL_CONTENT_PKG_NAME}" --separator=" " --checklist --multiple --print-column=5 --height 350 --width 650 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg)
## 如果没有选择,则直接退出
if [ -z "$PKG_UPGRADE_LIST" ] ; then
zenity --info --text "${TRANSHELL_CONTENT_NO_APP_IS_CHOSEN}" --title "${TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_MODEL}" --height 150 --width 300 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg