V6.3.0-2 优化脚本,修复某些情况下的检查更新失败

This commit is contained in:
Hyy2001X 2021-06-28 11:13:30 +08:00
parent bc3d4dfff5
commit 6d26890c3a
1 changed files with 42 additions and 11 deletions

View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# AutoBuild Module by Hyy2001 <https://github.com/Hyy2001X/AutoBuild-Actions> # AutoBuild Module by Hyy2001 <https://github.com/Hyy2001X/AutoBuild-Actions>
# AutoUpdate for Openwrt # AutoUpdate for Openwrt
# Depends on bash wget curl x86:gzip # Depends: bash wget-ssl/wget/uclient-fetch curl x86:gzip openssl
TITLE() { TITLE() {
clear && echo "Openwrt-AutoUpdate Script by Hyy2001 ${Version}" clear && echo "Openwrt-AutoUpdate Script by Hyy2001 ${Version}"
@ -41,8 +41,9 @@ SHELL_HELP() {
--bak <Path> <Name> 备份 Openwrt 配置文件到用户指定的目录 --bak <Path> <Name> 备份 Openwrt 配置文件到用户指定的目录
--clean 清理固件下载缓存 --clean 清理固件下载缓存
--check 检查 AutoUpdate 依赖软件包 --check 检查 AutoUpdate 依赖软件包
--var <Variable> 打印用户指定的 <variable> --var <Variable> 打印用户指定的 <Variable>
--var-rm <Variable> 删除用户指定的 <variable> --var-rm <Variable> 删除用户指定的 <Variable>
--env <0 | 1 | 2> 打印 AutoUpdate 环境变量
--log 打印 AutoUpdate 历史运行日志 --log 打印 AutoUpdate 历史运行日志
--log-path <Path> 更改 AutoUpdate 运行日志保存目录 --log-path <Path> 更改 AutoUpdate 运行日志保存目录
--random <Number> 打印一个随机数字与字母组合 (0-31) --random <Number> 打印一个随机数字与字母组合 (0-31)
@ -78,6 +79,22 @@ EOF
EXIT 0 EXIT 0
} }
LIST_ENV() {
local X
cat /etc/AutoBuild/*_Variable | grep -v '#' | while read X;do
[[ ${X} =~ "=" ]] && {
case $1 in
1 | 2)
[[ -n $(echo ${X} | cut -d "=" -f1) ]] && echo ${X} | cut -d "=" -f$1
;;
0)
echo ${X}
;;
esac
}
done
}
EXIT() { EXIT() {
local RUN_TYPE local RUN_TYPE
case "$1" in case "$1" in
@ -96,6 +113,7 @@ EXIT() {
} }
ECHO() { ECHO() {
local Color
[[ -z $1 ]] && { [[ -z $1 ]] && {
echo -ne "\n${Grey}[$(date "+%H:%M:%S")]${White} " echo -ne "\n${Grey}[$(date "+%H:%M:%S")]${White} "
} || { } || {
@ -263,19 +281,21 @@ UPDATE_SCRIPT() {
CHECK_DEPENDS() { CHECK_DEPENDS() {
TITLE TITLE
local PKG local PKG
echo -e "\n软件包 状态" echo -e "\n软件包 检测结果"
while [[ $1 ]];do while [[ $1 ]];do
if [[ $1 =~ : ]];then if [[ $1 =~ : ]];then
[[ $(echo $1 | cut -d ":" -f1) == ${TARGET_BOARD} ]] && { [[ $(echo $1 | cut -d ":" -f1) == ${TARGET_BOARD} ]] && {
PKG="$(echo $1 | cut -d ":" -f2)" PKG="$(echo $1 | cut -d ":" -f2)"
echo -e "${PKG} $(CHECK_PKG ${PKG})" [[ $(echo ${PKG} | wc -c) -gt 8 ]] && Tab=" " || Tab=" "
echo -e "${PKG}${Tab}$(CHECK_PKG ${PKG})"
} }
else else
echo -e "$1 $(CHECK_PKG $1)" [[ $(echo $1 | wc -c) -gt 8 ]] && Tab=" " || Tab=" "
echo -e "$1${Tab}$(CHECK_PKG $1)"
fi fi
shift shift
done done
ECHO y "结束,若某项测结果为 [false],请手动 [opkg install] 安装该软件包!" ECHO y "测结束,若某项测结果为 [false],请手动 [opkg install] 安装该软件包!"
EXIT 0 EXIT 0
} }
@ -547,8 +567,6 @@ AutoUpdate_Main() {
LOAD_VARIABLE ${Default_Variable} ${Custom_Variable} LOAD_VARIABLE ${Default_Variable} ${Custom_Variable}
[[ ! -d ${AutoUpdate_Path} ]] && mkdir -p ${AutoUpdate_Path} [[ ! -d ${AutoUpdate_Path} ]] && mkdir -p ${AutoUpdate_Path}
LOGGER "Command :[${Run_Command}] Started." LOGGER "Command :[${Run_Command}] Started."
[[ -z $* ]] && PREPARE_UPGRADES $*
[[ $1 =~ path= && ! $* =~ -x && ! $* =~ -U ]] && PREPARE_UPGRADES $*
if [[ $(CHECK_PKG wget-ssl) == true ]];then if [[ $(CHECK_PKG wget-ssl) == true ]];then
Downloader="wget-ssl -q --no-check-certificate -T 5 --no-dns-cache -x" Downloader="wget-ssl -q --no-check-certificate -T 5 --no-dns-cache -x"
@ -558,6 +576,8 @@ AutoUpdate_Main() {
Downloader="uclient-fetch -q --no-check-certificate --timeout 5" Downloader="uclient-fetch -q --no-check-certificate --timeout 5"
fi fi
[[ -z $* ]] && PREPARE_UPGRADES $*
[[ $1 =~ path= && ! $* =~ -x && ! $* =~ -U ]] && PREPARE_UPGRADES $*
[[ $* =~ -T || $* =~ --test ]] && Downloader="$(echo ${Downloader} | sed -r 's/-q /\1/')" [[ $* =~ -T || $* =~ --test ]] && Downloader="$(echo ${Downloader} | sed -r 's/-q /\1/')"
while [[ $1 ]];do while [[ $1 ]];do
@ -577,6 +597,17 @@ AutoUpdate_Main() {
esac esac
EXIT 0 EXIT 0
;; ;;
--env)
shift
case $1 in
0 | 1 | 2)
LIST_ENV $1
;;
*)
SHELL_HELP
;;
esac
;;
--random) --random)
shift shift
[[ $# != 1 || ! $1 =~ [0-9] || $1 == 0 || $1 -gt 30 ]] && SHELL_HELP || RANDOM $1 [[ $# != 1 || ! $1 =~ [0-9] || $1 == 0 || $1 -gt 30 ]] && SHELL_HELP || RANDOM $1
@ -587,7 +618,7 @@ AutoUpdate_Main() {
;; ;;
--check) --check)
shift && [[ -n $* ]] && SHELL_HELP shift && [[ -n $* ]] && SHELL_HELP
CHECK_DEPENDS x86:gzip curl wget openssl CHECK_DEPENDS bash x86:gzip x86:wget-ssl uclient-fetch curl wget openssl
;; ;;
-H | --help) -H | --help)
SHELL_HELP SHELL_HELP