Update sysupgrade

This commit is contained in:
喵二
2024-06-10 16:47:19 +08:00
committed by GitHub
parent 72baacd0db
commit 794d233aa1

View File

@@ -19,6 +19,22 @@ if ! grep -q "OpenWrt" <<< "$openwrt_release"; then
exit 1 exit 1
fi fi
# installed
install_cattools() {
if [ ! -f /usr/bin/cattools ]; then
echo "cattools not found, installing..."
if curl --silent --connect-timeout 5 -o /usr/bin/cattools https://raw.githubusercontent.com/miaoermua/cattools/main/cattools.sh; then
echo "cattools installed successfully from the first URL."
elif curl --silent --connect-timeout 5 -o /usr/bin/cattools https://fastly.jsdelivr.net/gh/miaoermua/cattools@main/cattools.sh; then
echo "cattools installed successfully from the second URL."
else
echo "Failed to download cattools from both URLs."
exit 1
fi
chmod +x /usr/bin/cattools
fi
}
# Update # Update
update_cattools() { update_cattools() {
local temp_file=$(mktemp) local temp_file=$(mktemp)
@@ -36,6 +52,7 @@ update_cattools() {
echo "cattools updated successfully." echo "cattools updated successfully."
} }
install_cattools
update_cattools update_cattools
# Menu Function # Menu Function
@@ -49,6 +66,7 @@ show_menu() {
echo "3. catwrt_update - 检查更新" echo "3. catwrt_update - 检查更新"
echo "4. use_repo - 启用软件源" echo "4. use_repo - 启用软件源"
echo "5. diagnostics - 网络诊断" echo "5. diagnostics - 网络诊断"
echo "6. sysupgrade - 系统更新"
echo "0. Exit - 退出" echo "0. Exit - 退出"
echo "----------------------------------------------------------" echo "----------------------------------------------------------"
echo -n "请输入数字并回车(Please enter your choice): " echo -n "请输入数字并回车(Please enter your choice): "
@@ -409,6 +427,42 @@ catnd(){
echo "CatWrt Network Diagnostics by @miaoermua" echo "CatWrt Network Diagnostics by @miaoermua"
} }
# Sysupgrade
sysupgrade() {
if [ "$(uname -m)" != "x86_64" ]; then
echo "仅有 x86_64 可以使用脚本进行系统升级。"
exit 1
fi
disk_size=$(fdisk -l /dev/sda | grep "Disk /dev/sda:" | awk '{print $3}')
if (( $(echo "$disk_size != 800.28" | bc -l) )); then
echo "磁盘空间未修改或不匹配,无法继续升级。"
exit 1
fi
efi_mode=0
if [ -d /sys/firmware/efi ]; then
efi_mode=1
fi
if [ -e /dev/sda128 ] || [ -e /dev/vda128 ] || [ -e /dev/nvme0n1p128 ] || [ $efi_mode -eq 1 ]; then
firmware_url=$AMD64_EFI_SYSUP
else
firmware_url=$AMD64_BIOS_SYSUP
fi
echo "Warning: 该功能未经过实践,不保证是否升级成功,请三思而后行!"
echo "即将升级系统,存在风险请你三思确认 (y/n) 30 秒后默认退出脚本!"
read -t 30 -n 1 -p "确认升级吗? " user_input
if [ $? -ne 0 ] || [ "$user_input" != "y" ]; then
echo -e "\n用户已取消升级!"
exit 1
fi
echo -e "\n正在升级系统..."
sysupgrade -v $firmware_url
}
while true; do while true; do
show_menu show_menu
read choice read choice
@@ -428,6 +482,9 @@ while true; do
5) 5)
catnd catnd
;; ;;
6)
sysupgrade
;;
0) 0)
echo "Exiting..." echo "Exiting..."
break break