Files
tms-calamares/calamares_polkit
2026-01-23 05:29:31 +08:00

66 lines
2.0 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 函数:检查网络连接
# 尝试ping Google DNS-c 1 只发送一个包,-W 2 超时2秒
has_internet() {
ping -c 1 -W 2 8.8.8.8 > /dev/null 2>&1
return $? # 返回ping的退出状态码 (0表示成功)
}
echo "正在检查网络连接..."
NETWORK_STATUS="offline" # 初始状态为离线
if has_internet; then
NETWORK_STATUS="online"
echo "网络已连接。"
else
echo "未检测到网络连接将尝试等待最多30秒..."
for i in $(seq 1 30); do
echo "等待网络... ($i/30秒)"
if has_internet; then
NETWORK_STATUS="online"
echo "网络已连接。"
break # 成功连接,跳出循环
fi
sleep 1
done
if [ "$NETWORK_STATUS" == "offline" ]; then
echo "在30秒内未能检测到网络连接。"
fi
fi
# 如果网络在线,尝试更新 Calamares
if [ "$NETWORK_STATUS" == "online" ]; then
echo "网络在线,尝试更新 Calamares..."
# 检查 pacman 是否存在,虽然在 Arch 系系统中通常都有
if command -v pacman &> /dev/null; then
if sudo pacman -Sy --noconfirm tms-calamares-config; then
echo "Calamares 更新成功或已是最新版本。"
else
echo "Calamares 更新失败。可能会使用旧版本启动。"
fi
else
echo "未找到 pacman 包管理器,无法更新 Calamares。"
fi
else
echo "网络离线,跳过 Calamares 更新。"
fi
# 启动 Calamares
echo "启动 Calamares 安装程序..."
# 原始的 Calamares 启动逻辑
if [ $(which pkexec) ]; then
# 如果 pkexec 存在,通过 sudo 运行 calamares
# 注意:这里沿用您原脚本的写法,即检查 pkexec 但仍使用 sudo。
# 如果您希望通过 pkexec 提升权限,应改为 pkexec "/usr/bin/calamares" "$@" "-d"
sudo "/usr/bin/calamares" "$@" "-d"
else
# 否则,直接运行 calamares
/usr/bin/calamares "$@" "-d"
fi
echo "Calamares 启动命令已执行。"