mirror of
https://gitee.com/spark-store-project/spark-store
synced 2025-09-06 19:32:22 +08:00
118 lines
2.9 KiB
Bash
Executable File
118 lines
2.9 KiB
Bash
Executable File
#!/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 "$@"
|
||
}
|
||
#################检测文件是否存在
|
||
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`
|
||
|
||
if [ ! -e "/var/lib/apt/lists/d.spark-app.store_${STORE_URL}_Packages" ] && [ ! -e "/var/lib/apt/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ] && [ ! -e "/var/lib/apt/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages" ];then
|
||
echo "接收星火仓库软件信息中..."
|
||
aptss ssupdate
|
||
fi
|
||
|
||
### 选择包信息位置
|
||
|
||
if [ -e "/var/lib/apt/lists/d.spark-app.store_${STORE_URL}_Packages" ];then
|
||
PACKAGES_DATA_PATH="/var/lib/apt/lists/d.spark-app.store_${STORE_URL}_Packages"
|
||
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是星火域名单目录仓库配置"
|
||
elif [ -e "/var/lib/apt/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ];then
|
||
PACKAGES_DATA_PATH="/var/lib/apt/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages"
|
||
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是星火域名单目录仓库配置"
|
||
else
|
||
PACKAGES_DATA_PATH="/var/lib/apt/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages"
|
||
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是SDU镜像仓库配置"
|
||
fi
|
||
|
||
|
||
|
||
echo "正在计算hash并与星火仓库匹配..."
|
||
|
||
DEB_MD5SUM=`md5sum "$DEBPATH" | cut -c -32`
|
||
|
||
IS_MD5SUM_CHECKD=`cat $PACKAGES_DATA_PATH | grep $DEB_MD5SUM`
|
||
if [ ! -z "$IS_MD5SUM_CHECKD" ];then
|
||
|
||
echo "校验成功,开始安装"
|
||
echo ----------------------------------------------------------------------------------
|
||
|
||
try_run_output=$(aptss --dry-run install $DEBPATH)
|
||
try_run_ret="$?"
|
||
|
||
if [ "$try_run_ret" -ne 0 ]
|
||
then
|
||
echo "Package manager quit with exit code.Here is the log"
|
||
echo "包管理器以错误代码退出.日志如下"
|
||
echo
|
||
echo -e "${try_run_output}"
|
||
exit "$try_run_ret"
|
||
fi
|
||
|
||
|
||
dpkg -i "$DEBPATH" || aptss install -yf
|
||
|
||
else
|
||
|
||
|
||
zenity --info --icon-name=spark-store --height 270 --width 500 --text "${TRANSHELL_CONTENT_HASH_CHECK_FAILED}"
|
||
|
||
echo -e ${TRANSHELL_CONTENT_HASH_CHECK_FAILED}
|
||
|
||
fi
|