Files
CatTools/cattools.sh

159 lines
3.8 KiB
Bash
Raw Normal View History

2023-12-12 17:36:37 +08:00
#!/bin/bash
###
# @Author: miaoermua
# @Date: 2023-12-12 16:59:27
# @LastEditors: miaoermua
# @LastEditTime: 2023-12-12 17:33:11
# @FilePath: \undefinedd:\Git\cattools\cattools.sh
###
default_ip="192.168.1.4"
2023-12-12 18:02:05 +08:00
release="catwrt_release"
amd64_repo_url="https://fastly.jsdelivr.net/gh/miaoermua/cattools@main/repo_lists/amd64/distfeeds.conf"
2023-12-12 17:36:37 +08:00
amd64_efi_boot_sysup="https://github.com/miaoermua/CatWrt/releases/download/v23.8/CatWrt.v23.8.x86_64-squashfs-combined-efi.img.gz"
amd64_bios_boot_sysup="https://github.com/miaoermua/CatWrt/releases/download/v23.8/CatWrt.v23.8.x86_64-squashfs-combined.img.gz"
2023-12-12 18:02:05 +08:00
# Check OpenWrt
if [ $(id -u) != "0" ]; then
echo "Error: You must be root to run this script, please use root user"
exit 1
fi
release=$(cat /etc/openwrt_release)
if [[ $release =~ "OpenWrt" ]]; then
echo "$(date) - Starting CatWrt Network Diagnostics"
else
echo "Abnormal system environment..."
echo " "
exit 1
fi
2023-12-12 17:36:37 +08:00
setip(){
read -p "请输入 IP(默认为 $default_ip): " input_ip
if [ -z $input_ip ]; then
input_ip=$default_ip
fi
uci set network.lan.ipaddr=$input_ip
uci commit network
/etc/init.d/network restart
echo "默认IP已设置为 $input_ip"
}
catwrt_update(){
2023-12-12 18:08:16 +08:00
/usr/bin/catwrt-update
2023-12-12 17:36:37 +08:00
}
catwrt_network_diagnostics(){
/usr/bin/catnd
}
2023-12-12 18:02:05 +08:00
use_repo(){
echo "你需要同意 CatWrt 软件源用户协议,请确认是否继续(y/n)"
read -t 10 -p "您有 10 秒选择,输入 y 继续,其他退出:" confirm
[ "$confirm" != y ] && return
arch=$(uname -m)
if [ "$arch" = "x86_64" ]; then
curl -o /etc/opkg/distfeeds.conf $amd64_repo_url
rm -f /var/lock/opkg.lock
opkg update
echo "UPDATE!"
else
echo "非 x86_64 架构,跳过"
fi
}
2023-12-12 17:36:37 +08:00
catwrt_sysupgrade(){
# 检测架构
if [[ $(uname -m) =~ "x86_64" ]]; then
echo "CatWrt ARCH: x86_64(AMD64)"
# 检测磁盘空间
size=$(fdisk -l /dev | grep "Disk /dev" | awk '{print $5}')
size=${size%\*}
if [[ $size > 820 ]]; then
echo "磁盘空间超过限制,升级中止"
exit
fi
# 检测EFI分区
if [[ -b /dev/sda128 || -b /dev/vda128 ]]; then
efi_part=true
else
efi_part=false
fi
# 用户确认
echo "将升级系统,存在风险,请先确认(y/n), 30秒后默认n"
read -t 30 confirm
confirm=${confirm:-n}
# 执行升级
if [[ $confirm =~ [Yy] ]]; then
if [[ $efi_part == true ]]; then
sysupgrade -v $amd64_efi_boot_sysup
else
sysupgrade -v $amd64_bios_boot_sysup
fi
else
echo "用户已取消升级"
fi
else
echo "非x86_64架构,跳过升级"
fi
}
while :; do
clear
echo "CatTools"
echo "---------------------------"
2023-12-27 12:56:25 +08:00
echo "1. Set IPv4 Addr 设置 IP"
2023-12-27 12:53:17 +08:00
echo "2. Check Update 检查系统更新"
echo "3. network diagnostics 网络诊断"
echo "4. use repo 使用软件源"
echo "5. sysupgrade 升级系统"
echo "0. Exit 退出脚本"
2023-12-27 12:49:49 +08:00
echo "请选择:"
choice=""
while [ -z $choice ]; do
read choice
done
2023-12-12 17:36:37 +08:00
case $choice in
1)
setip
;;
2)
catwrt_update
;;
3)
catwrt_network_diagnostics
;;
2023-12-12 18:02:05 +08:00
4)
use_repo
;;
2023-12-12 18:04:03 +08:00
5)
2023-12-12 17:36:37 +08:00
catwrt_sysupgrade
;;
0)
2023-12-12 18:02:05 +08:00
echo "Exit CatTools 退出脚本..."
2023-12-12 17:36:37 +08:00
break
;;
*)
echo "无效的选择, 请重新输入"
;;
esac
sleep 1
done
2023-12-12 18:02:05 +08:00
echo "结束!"