Files
spark-store/tool/ssinstall
T
2022-12-12 15:11:48 +08:00

65 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
echo "Spark Store Install script.星火商店安装脚本"
function pkexec_as_current_user() {
#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 pkexec "$@"
}
#################检测文件是否存在
if [ $# -eq 0 ];then
echo "没有接收到参数,退出"
echo "用法:$0 deb路径"
exit
fi
if [ ! -f "$1" ]
then
echo "文件不存在"
exit 1
fi
if [ "$(id -u)" != "0" ];then
#############################无root权限时
echo "请使用root启动ssinstall"
exit 1
fi
###
if [ ! -e "/var/lib/apt/lists/d.store.deepinos.org.cn_Packages" ];then
echo "接收星火仓库软件信息中..."
aptss ssupdate
fi
echo "正在计算hash并与星火仓库匹配..."
DEB_MD5SUM=`md5sum "$1" | cut -c -32`
IS_MD5SUM_CHECKD=`cat /var/lib/apt/lists/d.store.deepinos.org.cn_Packages | grep $DEB_MD5SUM`
if [ ! -z "$IS_MD5SUM_CHECKD" ];then
echo "校验成功,开始安装"
echo ----------------------------------------------------------------------------------
dpkg -i "$1" || aptss install -yf
else
echo "校验失败,该deb不是星火已经上架的软件包,这可能是因为你正在尝试安装一个尚未上架的软件包"
echo "如果你是审核人员,这是正常的"
echo "为确保安全,将会询问密码"
pkexec_as_current_user bash -c "dpkg -i "$1" || aptss install -yf "
fi