mirror of
https://gitee.com/spark-store-project/spark-store
synced 2025-05-17 14:49:50 +08:00
fix: wrong app name displayed when checking app upgrade
grep Name[$locale] from .desktop directly might return from other sections like [Desktop Action xxx] instead of [Desktop entry] section only Log: modify awk params in ss-do-upgrade.sh and format the script
This commit is contained in:
parent
f0830822c7
commit
6fa0e11927
@ -1,16 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ "$(id -u)" != "0" ] ; then
|
||||
if [ "$IS_ACE_ENV" = "1" ];then
|
||||
/opt/durapps/spark-store/bin/store-helper/pass-auth.sh "$0" "$@"
|
||||
else
|
||||
xhost +
|
||||
pkexec "$0" "$@"
|
||||
exit
|
||||
fi
|
||||
if [ "$IS_ACE_ENV" = "1" ] ; then
|
||||
/opt/durapps/spark-store/bin/store-helper/pass-auth.sh "$0" "$@"
|
||||
else
|
||||
xhost +
|
||||
pkexec "$0" "$@"
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
trap "rm -f /tmp/spark-store/upgradeStatus.txt" EXIT
|
||||
trap "rm -f /tmp/spark-store/upgradeStatus.txt" EXIT
|
||||
source /opt/durapps/spark-store/bin/bashimport/transhell.amber
|
||||
load_transhell_debug
|
||||
|
||||
@ -20,40 +20,41 @@ function get_name_from_desktop_file() {
|
||||
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
|
||||
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
|
||||
app_name_in_desktop=$name_i18n
|
||||
name_orig=$(awk -F= '/^\[Desktop Entry\]$/ {found=1} found && /^Name=/ {print $2; exit} /^\[.*\]$/ && !/\[Desktop Entry\]/ {exit}' "$desktop_file_path")
|
||||
name_i18n=$(awk -v lang="Name[$LANGUAGE]" -F= '/^\[Desktop Entry\]$/ {found=1} found && /^Name\[/ && $1 == lang {print $2; exit} /^\[.*\]$/ && !/\[Desktop Entry\]/ {exit}' "$desktop_file_path")
|
||||
if [ -z "$name_i18n" ] ; then
|
||||
app_name_in_desktop=$name_orig
|
||||
else
|
||||
app_name_in_desktop=$name_i18n
|
||||
fi
|
||||
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}
|
||||
|
||||
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=$(awk -F= '/^\[Desktop Entry\]$/ {found=1} found && /^Name=/ {print $2; exit} /^\[.*\]$/ && !/\[Desktop Entry\]/ {exit}' "$desktop_file_path")
|
||||
name_i18n=$(awk -v lang="Name[$LANGUAGE]" -F= '/^\[Desktop Entry\]$/ {found=1} found && /^Name\[/ && $1 == lang {print $2; exit} /^\[.*\]$/ && !/\[Desktop Entry\]/ {exit}' "$desktop_file_path")
|
||||
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
|
||||
@ -118,32 +119,23 @@ done)
|
||||
## 如果没有选择,则直接退出
|
||||
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
|
||||
else
|
||||
### 更新用户选择的应用
|
||||
|
||||
|
||||
(for PKG_UPGRADE in $PKG_UPGRADE_LIST; do
|
||||
APP_UPGRADE="$(get_name_from_desktop_file $PKG_UPGRADE)"
|
||||
update_transhell
|
||||
|
||||
# 启动升级任务
|
||||
(pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh upgrade-app $PKG_UPGRADE -y 2>&1 > /dev/null ) &
|
||||
cmd_pid=$!
|
||||
# 动态修改zenity的文本
|
||||
echo "# ${TRANSHELL_CONTENT_UPGRADING_PLEASE_WAIT}"
|
||||
wait
|
||||
done) | zenity --progress --auto-close --no-cancel --pulsate --text="Preparing..." --height 70 --width 400 --title="${TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_MODEL}" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
|
||||
|
||||
|
||||
|
||||
|
||||
else ### 更新用户选择的应用
|
||||
(for PKG_UPGRADE in $PKG_UPGRADE_LIST ; do
|
||||
APP_UPGRADE="$(get_name_from_desktop_file $PKG_UPGRADE)"
|
||||
update_transhell
|
||||
|
||||
# 启动升级任务
|
||||
(pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh upgrade-app $PKG_UPGRADE -y 2>&1 > /dev/null ) &
|
||||
cmd_pid=$!
|
||||
# 动态修改zenity的文本
|
||||
echo "# ${TRANSHELL_CONTENT_UPGRADING_PLEASE_WAIT}"
|
||||
wait
|
||||
done) | zenity --progress --auto-close --no-cancel --pulsate --text="Preparing..." --height 70 --width 400 --title="${TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_MODEL}" --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 "${TRANSHELL_CONTENT_CHOSEN_APP_UPGRADE_FINISHED}" --title "${TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_MODEL}" --height 150 --width 300 --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
|
||||
else
|
||||
#### 更新异常
|
||||
else #### 更新异常
|
||||
zenity --error --text "${TRANSHELL_CONTENT_APP_UGRADE_PROCESS_ERROR_PRESS_CONFIRM_TO_CHECK}" --title "${TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_MODEL}" --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="${TRANSHELL_CONTENT_I_ALREDY_COPIED_THE_LOG_HERE_AND_WILL_USE_IT_TO_FEEDBACK}" --title="${TRANSHELL_CONTENT_FEEDBACK_CAN_BE_FOUND_IN_THE_SETTINGS}" --window-icon=/usr/share/icons/hicolor/scalable/apps/spark-store.svg
|
||||
fi
|
||||
@ -151,5 +143,5 @@ done) | zenity --progress --auto-close --no-cancel --pulsate --text="Preparing..
|
||||
fi
|
||||
fi
|
||||
|
||||
rm -f /tmp/spark-store/upgradeStatus.txt
|
||||
rm -f /tmp/spark-store/upgradeStatus.txt
|
||||
# 从最开头
|
||||
|
Loading…
x
Reference in New Issue
Block a user