mirror of
https://gitee.com/spark-store-project/spark-store
synced 2025-09-08 20:32:21 +08:00
107 lines
2.6 KiB
Bash
Executable File
107 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
source /opt/durapps/spark-store/bin/bashimport/transhell.amber
|
|
load_transhell_debug
|
|
|
|
|
|
|
|
|
|
|
|
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 name of the display in use
|
|
local display=":$(ls /tmp/.X11-unix/* | sed 's#/tmp/.X11-unix/X##' | head -n 1)"
|
|
|
|
#Detect the user using such display
|
|
local user=$(who | grep '('$display')' | awk '{print $1}' | head -n 1)
|
|
|
|
#Detect the id of the user
|
|
local uid=$(id -u $user)
|
|
|
|
sudo -u $user DISPLAY=$display 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.store.deepinos.org.cn_Packages" ] && [ ! -e "/var/lib/apt/lists/d.store.deepinos.org.cn_store_Packages" ];then
|
|
echo "接收星火仓库软件信息中..."
|
|
aptss ssupdate
|
|
fi
|
|
|
|
### 选择包信息位置
|
|
|
|
if [ -e "/var/lib/apt/lists/d.store.deepinos.org.cn_store_Packages" ];then
|
|
PACKAGES_DATA_PATH="/var/lib/apt/lists/d.store.deepinos.org.cn_store_Packages"
|
|
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是单目录仓库配置"
|
|
else
|
|
PACKAGES_DATA_PATH="/var/lib/apt/lists/d.store.deepinos.org.cn_Packages"
|
|
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH,是根目录仓库配置"
|
|
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
|