#!/bin/bash source /opt/durapps/spark-store/bin/bashimport/transhell.amber load_transhell_debug case `arch` in x86_64) STORE_URL="store" ;; aarch64) STORE_URL="aarch64-store" ;; esac echo "Spark Store Install script.星火商店安装脚本" function pkexec_as_current_user() { #Detect the id of the user local uid=$(id -u $user) sudo -u $user DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$uid/bus pkexec "$@" } function zenity() { #Detect the user using such display local user=$(who | awk '{print $1}' | head -n 1) #Detect the id of the user local uid=$(id -u $user) sudo -u $user DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$uid/bus zenity "$@" } function hash_check() { if [ ! -e "/var/lib/aptss/lists/d.spark-app.store_${STORE_URL}_Packages" ] && [ ! -e "/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ] && [ ! -e "/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages" ];then echo "接收星火仓库软件信息中..." aptss ssupdate fi ### 选择包信息位置 if [ -e "/var/lib/aptss/lists/d.spark-app.store_${STORE_URL}_Packages" ];then PACKAGES_DATA_PATH="/var/lib/aptss/lists/d.spark-app.store_${STORE_URL}_Packages" echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是星火域名单目录仓库配置" elif [ -e "/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ];then PACKAGES_DATA_PATH="/var/lib/aptss/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是星火域名单目录仓库配置" else PACKAGES_DATA_PATH="/var/lib/aptss/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages" echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是SDU镜像仓库配置" fi echo "正在计算hash并与星火仓库匹配..." DEB_MD5SUM=`md5sum "$1" | cut -c -32` IS_MD5SUM_CHECKD=`cat $PACKAGES_DATA_PATH | grep $DEB_MD5SUM` } ########################################################################## #################检测文件是否存在 if [ $# -eq 0 ];then echo "没有接收到参数,退出" echo "用法:$0 deb路径" exit fi if [ ! -f "$1" ] then echo "${TRANSHELL_CONTENT_FILE_NOT_EXIST}" exit 1 fi if [ "$(id -u)" != "0" ];then #############################无root权限时 echo "${TRANSHELL_CONTENT_PLEASE_RUN_AS_ROOT}" exit 1 fi ### DEBPATH=`realpath $1` hash_check "$DEBPATH" if [ -z "$IS_MD5SUM_CHECKD" ];then echo "尝试更新仓库信息重新校验" aptss ssupdate hash_check "$DEBPATH" fi if [ ! -z "$IS_MD5SUM_CHECKD" ];then echo "校验成功,开始安装" echo ---------------------------------------------------------------------------------- try_run_output=$(/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade-worker.sh test-install-app "$DEBPATH") try_run_ret="$?" if [ "$try_run_ret" -ne 0 ] then echo "OMG-IT-GOES-WRONG" echo -e "${try_run_output}" exit "$try_run_ret" fi dpkg -i "$DEBPATH" || aptss install -yf #### --delete if [ "$?" = "0" ] && [ "$2" = "--delete-after-install" ];then rm "$DEBPATH" echo "${TRANSHELL_CONTENT_DEB_IS_DELETED}" else echo "${TRANSHELL_CONTENT_WILL_NOT_DELETE_DEB}" fi else zenity --info --icon-name=spark-store --height 270 --width 500 --text "${TRANSHELL_CONTENT_HASH_CHECK_FAILED}" echo -e ${TRANSHELL_CONTENT_HASH_CHECK_FAILED} echo "OMG-IT-GOES-WRONG" fi