From e2f27c774649a9d8957406f21197f3cb0a05db11 Mon Sep 17 00:00:00 2001 From: shenmo Date: Fri, 27 Jan 2023 11:24:20 +0800 Subject: [PATCH] transhell update 1 --- tool/update-upgrade/ss-do-upgrade.sh | 32 ++++++++++++++----- tool/update-upgrade/ss-update-controler.sh | 11 +++---- tool/update-upgrade/ss-update-notifier.sh | 27 +++++++++++++--- .../ss-do-upgrade.sh_zh_CN.transhell | 9 ++++++ .../ss-update-notifier.sh_en_US.transhell | 5 +++ .../ss-update-notifier.sh_zh_CN.transhell | 5 +++ 6 files changed, 70 insertions(+), 19 deletions(-) create mode 100644 tool/update-upgrade/transhell/ss-do-upgrade.sh_zh_CN.transhell create mode 100644 tool/update-upgrade/transhell/ss-update-notifier.sh_en_US.transhell create mode 100644 tool/update-upgrade/transhell/ss-update-notifier.sh_zh_CN.transhell diff --git a/tool/update-upgrade/ss-do-upgrade.sh b/tool/update-upgrade/ss-do-upgrade.sh index f87e3b3..c0ee1ce 100755 --- a/tool/update-upgrade/ss-do-upgrade.sh +++ b/tool/update-upgrade/ss-do-upgrade.sh @@ -1,16 +1,32 @@ #!/bin/bash + +##load transhell +function load_transhell() +{ +WORK_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +CURRENT_LANG="$(echo $LANG | cut -c -5)" +if [ -e "/usr/share/$(basename $0)/transhell/$(basename $0)_en_US.transhell" ]; then source /usr/share/$(basename $0)/transhell/$(basename $0)_en_US.transhell; echo "Loading transhell from /usr/share/$(basename $0)/transhell/$(basename $0)_en_US.transhell ..."; fi +if [ -e "/usr/share/$(basename $0)/transhell/$(basename $0)_$CURRENT_LANG.transhell" ]; then source /usr/share/$(basename $0)/transhell/$(basename $0)_$CURRENT_LANG.transhell; echo "Loading transhell from /usr/share/$(basename $0)/transhell/$(basename $0)_$CURRENT_LANG.transhell ..."; fi +if [ -e "${WORK_PATH}/transhell/$(basename $0)_en_US.transhell" ]; then source ${WORK_PATH}/transhell/$(basename $0)_en_US.transhell; echo "Loading transhell from ${WORK_PATH}/transhell/$(basename $0)_en_US.transhell ..."; fi +if [ -e "${WORK_PATH}/transhell/$(basename $0)_$CURRENT_LANG.transhell" ]; then source ${WORK_PATH}/transhell/$(basename $0)_$CURRENT_LANG.transhell; echo "Loading transhell from ${WORK_PATH}/transhell/$(basename $0)_$CURRENT_LANG.transhell ..."; fi + +echo "-----------------------------------------------------------------------------" +} + +load_transhell + + touch /tmp/spark-store/upgradeStatus.txt # 执行 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 +pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh ssupdate | zenity --progress --auto-close --pulsate --no-cancel --text="${TRANSHELL_CONTENT_UPDATE_CHEKING_PLEASE_WAIT}" --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-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 + zenity --error --text "${TRANSHELL_CONTENT_CHECK_UPDATE_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-ssupdate-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 pkexec /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh clean-log rm -f /tmp/spark-store/upgradeStatus.txt exit @@ -20,7 +36,7 @@ fi 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 + 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 ## 获取用户选择的要更新的应用 ### 指定分隔符为 \n @@ -45,7 +61,7 @@ else echo "$PKG_CUR_VER" else echo "false" - echo "$PKG_NAME(无法更新:已被标记为保留)" + echo "$PKG_NAME${TRANSHELL_CONTENT_CAN_NOT_UPGRADE_FOR_BEING_HOLD}" echo "$PKG_NEW_VER" echo "$PKG_CUR_VER" fi @@ -56,9 +72,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 "${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="选择你想更新的应用" --column="是否更新" --column="包名" --column="新版本" --column="从该版本更新" --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="是否更新" --column="包名" --column="新版本" --column="从该版本更新" --separator=" " --checklist --multiple --print-column=2 --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 diff --git a/tool/update-upgrade/ss-update-controler.sh b/tool/update-upgrade/ss-update-controler.sh index a918fcd..de0cc18 100755 --- a/tool/update-upgrade/ss-update-controler.sh +++ b/tool/update-upgrade/ss-update-controler.sh @@ -15,13 +15,10 @@ fi -option=`zenity --list --text="欢迎使用星火更新和安装设置工具\n请在以下操作中选择一个进行~" --column 数字 --column=操作选项 --print-column=2 --height 350 --width 760 0 "查看自动更新相关功能使用前须知(重要)" 1 "$text_update_open星火更新检测工具(如果开启则会在系统启动后自动检测更新。如有更新则会弹出通知)" 2 查看可更新软件包列表并决定是否更新 4 退出脚本 --hide-column=1 --print-column=1` +option=`zenity --list --text="欢迎使用星火更新和安装设置工具\n请在以下操作中选择一个进行~" --column 数字 --column=操作选项 --print-column=2 --height 350 --width 760 0 "$text_update_open星火更新检测工具(如果开启则会在系统启动后自动检测更新。如有更新则会弹出通知)" 1 查看可更新软件包列表并决定是否更新 2 退出脚本 --hide-column=1 --print-column=1` case $option in 0) - zenity --info --icon-name=spark-store --height 450 --width 500 --text "此须知适用于自动更新功能\n\n此脚本可以检测星火源中是否有比当前系统更高版本的软件包,由您决定是否安装;在安装更新过程中请不要直接点击关闭本页面,以免发生错误\n\n此脚本使用apt update/apt list --upgrade/apt upgrade来更新软件源、列出更新列表和操作更新\n\n该脚本不对其使用效果有任何明示或暗示的担保,在使用前请您确保您清楚地知道您在干什么。您应当清楚,星火商店的软件包并不是适配所有发行版的;尽管绝大多数的软件更新是无害的,您仍然应该仔细检查显示出来的更新内容,以确保不会对您的依赖环境造成破坏,尤其是那些看起来和系统依赖相关的软件包。在查看过更新列表之后,确认更新之前,您仍有取消更新的机会。\n\n本脚本的开发者不对使用该脚本可能造成的后果负责" - ;; - 1) if [ -e /etc/systemd/system/multi-user.target.wants/spark-update-notifier.service ];then zenity --info --icon-name=spark-store --height 150 --width 200 --text "检测到已经启动了自动更新检测,执行关闭" --timeout=2 pkexec systemctl disable spark-update-notifier @@ -34,15 +31,15 @@ case $option in fi ;; - 2) + 1) /opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade.sh ;; - 4) + 2) exit 0 ;; *) exit 0 esac -done \ No newline at end of file +done diff --git a/tool/update-upgrade/ss-update-notifier.sh b/tool/update-upgrade/ss-update-notifier.sh index 7880ee7..fbb7e95 100755 --- a/tool/update-upgrade/ss-update-notifier.sh +++ b/tool/update-upgrade/ss-update-notifier.sh @@ -1,6 +1,25 @@ #!/bin/bash LANGUAGE=en_US + +##load transhell +function load_transhell() +{ +WORK_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +CURRENT_LANG="$(echo $LANG | cut -c -5)" +if [ -e "/usr/share/$(basename $0)/transhell/$(basename $0)_en_US.transhell" ]; then source /usr/share/$(basename $0)/transhell/$(basename $0)_en_US.transhell; echo "Loading transhell from /usr/share/$(basename $0)/transhell/$(basename $0)_en_US.transhell ..."; fi +if [ -e "/usr/share/$(basename $0)/transhell/$(basename $0)_$CURRENT_LANG.transhell" ]; then source /usr/share/$(basename $0)/transhell/$(basename $0)_$CURRENT_LANG.transhell; echo "Loading transhell from /usr/share/$(basename $0)/transhell/$(basename $0)_$CURRENT_LANG.transhell ..."; fi +if [ -e "${WORK_PATH}/transhell/$(basename $0)_en_US.transhell" ]; then source ${WORK_PATH}/transhell/$(basename $0)_en_US.transhell; echo "Loading transhell from ${WORK_PATH}/transhell/$(basename $0)_en_US.transhell ..."; fi +if [ -e "${WORK_PATH}/transhell/$(basename $0)_$CURRENT_LANG.transhell" ]; then source ${WORK_PATH}/transhell/$(basename $0)_$CURRENT_LANG.transhell; echo "Loading transhell from ${WORK_PATH}/transhell/$(basename $0)_$CURRENT_LANG.transhell ..."; fi + +echo "-----------------------------------------------------------------------------" +} + +load_transhell + +############################################################# + + # 发送通知 function notify-send() { @@ -37,7 +56,7 @@ function network() network if [ $? -ne 0 ] ; then - echo "Network fail. Stop to avoid bother dpkg" + echo "$TRANSHELL_CONTENT_NETWORK_FAIL" exit -1 fi @@ -51,7 +70,7 @@ curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d updatetext=`aptss ssupdate 2>&1` until [ "`echo $updatetext | grep E: `" = "" ];do -echo "更新出现异常状况,等待十五秒" +echo "${TRANSHELL_CONTENT_UPDATE_ERROR_AND_WAIT_15_SEC}" sleep 15 updatetext=`aptss ssupdate 2>&1` @@ -95,10 +114,10 @@ done # 还原分隔符 IFS="$IFS_OLD" - if [ $update_app_number -le 0 ] ; then exit 0 fi +load_transhell ## 如果都是hold或者版本一致的那就直接退出,否则把剩余的给提醒了 -notify-send -a spark-store "星火更新提醒" "星火商店仓库中有$update_app_number个软件包可以更新啦!请到星火商店的菜单处理" \ No newline at end of file +notify-send -a spark-store "${TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_NOTIFY}" "${TRANSHELL_CONTENT_THERE_ARE_APPS_TO_UPGRADE}" diff --git a/tool/update-upgrade/transhell/ss-do-upgrade.sh_zh_CN.transhell b/tool/update-upgrade/transhell/ss-do-upgrade.sh_zh_CN.transhell new file mode 100644 index 0000000..83d9d77 --- /dev/null +++ b/tool/update-upgrade/transhell/ss-do-upgrade.sh_zh_CN.transhell @@ -0,0 +1,9 @@ +#!/bin/bash +TRANSHELL_CONTENT_UPDATE_CHEKING_PLEASE_WAIT="正在检查更新,请稍候..." +TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_MODEL="星火商店更新模块" +TRANSHELL_CONTENT_CHECK_UPDATE_PROCESS_ERROR_PRESS_CONFIRM_TO_CHECK="检查更新进程出现错误!按确定查看报错,可用于反馈" +TRANSHELL_CONTENT_I_ALREDY_COPIED_THE_LOG_HERE_AND_WILL_USE_IT_TO_FEEDBACK="我已复制了此文本框中的日志,且将会在反馈时附上。反馈渠道可以在右上角菜单的设置中找到" +TRANSHELL_CONTENT_FEEDBACK_CAN_BE_FOUND_IN_THE_SETTINGS="反馈渠道在商店右上角的设置里" +TRANSHELL_CONTENT_NO_NEED_TO_UPGRADE="没有软件需要更新\n但是你并没有站在世界之巅" +TRANSHELL_CONTENT_CAN_NOT_UPGRADE_FOR_BEING_HOLD="(无法更新:已被标记为保留)" +TRANSHELL_CONTENT_CHOOSE_APP_TO_UPGRADE="选择你想更新的应用" diff --git a/tool/update-upgrade/transhell/ss-update-notifier.sh_en_US.transhell b/tool/update-upgrade/transhell/ss-update-notifier.sh_en_US.transhell new file mode 100644 index 0000000..fa28962 --- /dev/null +++ b/tool/update-upgrade/transhell/ss-update-notifier.sh_en_US.transhell @@ -0,0 +1,5 @@ +#!/bin/bash +TRANSHELL_CONTENT_NETWORK_FAIL="Network fail. Stop to avoid bother dpkg" +TRANSHELL_CONTENT_UPDATE_ERROR_AND_WAIT_15_SEC="Update error! Wait for 15 seconds..." +TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_NOTIFY="Spark Store Upgrade Notifier" +TRANSHELL_CONTENT_THERE_ARE_APPS_TO_UPGRADE="There are ${update_app_number} APPs available to upgrade! Please go to Spark Store to upgrade." diff --git a/tool/update-upgrade/transhell/ss-update-notifier.sh_zh_CN.transhell b/tool/update-upgrade/transhell/ss-update-notifier.sh_zh_CN.transhell new file mode 100644 index 0000000..668fa14 --- /dev/null +++ b/tool/update-upgrade/transhell/ss-update-notifier.sh_zh_CN.transhell @@ -0,0 +1,5 @@ +#!/bin/bash +TRANSHELL_CONTENT_NETWORK_FAIL="网络错误!为防止阻塞dpkg,停止" +TRANSHELL_CONTENT_UPDATE_ERROR_AND_WAIT_15_SEC="更新出现异常状况,等待十五秒" +TRANSHELL_CONTENT_SPARK_STORE_UPGRADE_NOTIFY="星火更新提醒" +TRANSHELL_CONTENT_THERE_ARE_APPS_TO_UPGRADE="星火商店仓库中有$update_app_number个软件包可以更新啦!请到星火商店的菜单处理"