V6.5.6 优化脚本
This commit is contained in:
parent
b42395d97c
commit
87fbf40ddb
|
@ -3,7 +3,7 @@
|
||||||
# AutoUpdate for Openwrt
|
# AutoUpdate for Openwrt
|
||||||
# Dependences: bash wget-ssl/wget/uclient-fetch curl openssl
|
# Dependences: bash wget-ssl/wget/uclient-fetch curl openssl
|
||||||
|
|
||||||
Version=V6.5.5
|
Version=V6.5.6
|
||||||
|
|
||||||
function TITLE() {
|
function TITLE() {
|
||||||
clear && echo "Openwrt-AutoUpdate Script by Hyy2001 ${Version}"
|
clear && echo "Openwrt-AutoUpdate Script by Hyy2001 ${Version}"
|
||||||
|
@ -13,8 +13,8 @@ function SHELL_HELP() {
|
||||||
TITLE
|
TITLE
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
|
|
||||||
使用方法: bash $0 [-n] [-f] [-u] [-F] [-P] [path=<PATH>]
|
使用方法: bash $0 [-n] [-f] [-u] [-F] [-P] [-D <Downloader>] [--path <PATH>]
|
||||||
bash $0 [-x] [path=<PATH>] [url=<URL>]
|
bash $0 [-x] [--path <PATH>] [--url <URL>]
|
||||||
|
|
||||||
更新固件:
|
更新固件:
|
||||||
-n 不保留配置更新固件 *
|
-n 不保留配置更新固件 *
|
||||||
|
@ -22,7 +22,7 @@ function SHELL_HELP() {
|
||||||
-f 跳过版本号、SHA256 校验,并强制刷写固件 (危险) *
|
-f 跳过版本号、SHA256 校验,并强制刷写固件 (危险) *
|
||||||
-F, --force-write 强制刷写固件 *
|
-F, --force-write 强制刷写固件 *
|
||||||
-P, --proxy 优先开启镜像加速下载固件 *
|
-P, --proxy 优先开启镜像加速下载固件 *
|
||||||
-D <Downloader> 使用指定的下载器 <wget-ssl | wget | curl | uclient-fetch>
|
-D <Downloader> 使用指定的下载器 <wget-ssl | wget | curl | uclient-fetch> *
|
||||||
--decompress 解压 img.gz 固件后再更新固件 *
|
--decompress 解压 img.gz 固件后再更新固件 *
|
||||||
--skip-verify 跳过固件 SHA256 校验 (危险) *
|
--skip-verify 跳过固件 SHA256 校验 (危险) *
|
||||||
--path <PATH> 保存固件到提供的绝对路径 <PATH> *
|
--path <PATH> 保存固件到提供的绝对路径 <PATH> *
|
||||||
|
@ -30,16 +30,16 @@ function SHELL_HELP() {
|
||||||
更新脚本:
|
更新脚本:
|
||||||
-x 更新 AutoUpdate.sh 脚本
|
-x 更新 AutoUpdate.sh 脚本
|
||||||
-x --path <PATH> 更新 AutoUpdate.sh 脚本 (保存脚本到提供的绝对路径 <PATH>) *
|
-x --path <PATH> 更新 AutoUpdate.sh 脚本 (保存脚本到提供的绝对路径 <PATH>) *
|
||||||
-x url=<URL> 更新 AutoUpdate.sh 脚本 (使用提供的地址 <URL> 更新脚本) *
|
-x --url <URL> 更新 AutoUpdate.sh 脚本 (使用提供的地址 <URL> 更新脚本) *
|
||||||
|
|
||||||
其他参数:
|
其他参数:
|
||||||
-B, --boot-mode <TYPE> 指定 x86 设备下载 <TYPE> 引导的固件 (e.g. UEFI Legacy)
|
-B, --boot-mode <TYPE> 指定 x86 设备下载 <TYPE> 引导的固件 (e.g. UEFI Legacy)
|
||||||
-C <Github URL> 更改 Github 地址为提供的 <Github URL>
|
-C <Github URL> 更改 Github 地址为提供的 <Github URL>
|
||||||
-H, --help 打印 AutoUpdate 帮助信息
|
-H, --help 打印 AutoUpdate 帮助信息
|
||||||
-L, --log < | del> <打印 | 删除> AutoUpdate 历史运行日志
|
-L, --log < | del> <打印 | 删除> AutoUpdate 历史运行日志
|
||||||
--log path=<PATH> 更改 AutoUpdate 运行日志路径为提供的绝对路径 <PATH>
|
--log --path <PATH> 更改 AutoUpdate 运行日志路径为提供的绝对路径 <PATH>
|
||||||
-P <F | G> 使用 <FastGit | Ghproxy> 镜像加速
|
-P <F | G> 使用 <FastGit | Ghproxy> 镜像加速 *
|
||||||
--backup path=<PATH> 备份当前系统配置文件到提供的绝对路径 <PATH>
|
--backup --path <PATH> 备份当前系统配置文件并移动到提供的绝对路径 <PATH> (可选)
|
||||||
--check 检查 AutoUpdate 运行环境
|
--check 检查 AutoUpdate 运行环境
|
||||||
--clean 清理 AutoUpdate 缓存
|
--clean 清理 AutoUpdate 缓存
|
||||||
--fw-log < | [Cc]loud | *> 打印 <当前 | 云端 | 指定版本> 版本的固件更新日志
|
--fw-log < | [Cc]loud | *> 打印 <当前 | 云端 | 指定版本> 版本的固件更新日志
|
||||||
|
@ -212,7 +212,6 @@ function LOAD_VARIABLE() {
|
||||||
Github_Release="${Github}/releases/download/AutoUpdate"
|
Github_Release="${Github}/releases/download/AutoUpdate"
|
||||||
Github_Raw="https://raw.githubusercontent.com/${Firmware_Author}/master"
|
Github_Raw="https://raw.githubusercontent.com/${Firmware_Author}/master"
|
||||||
Github_API="https://api.github.com/repos/${Firmware_Author}/releases/latest"
|
Github_API="https://api.github.com/repos/${Firmware_Author}/releases/latest"
|
||||||
Script_URL="$(URL_X ${Github_Raw}/Scripts/AutoUpdate.sh G@@1 F@@1 X@@1)"
|
|
||||||
case "${TARGET_BOARD}" in
|
case "${TARGET_BOARD}" in
|
||||||
x86)
|
x86)
|
||||||
case "${Firmware_Format}" in
|
case "${Firmware_Format}" in
|
||||||
|
@ -312,7 +311,7 @@ function UPDATE_SCRIPT() {
|
||||||
ECHO y "[${Banner_Version} > ${Script_Version}] AutoUpdate 脚本更新成功!"
|
ECHO y "[${Banner_Version} > ${Script_Version}] AutoUpdate 脚本更新成功!"
|
||||||
EXIT 0
|
EXIT 0
|
||||||
else
|
else
|
||||||
ECHO r "AutoUpdate 脚本更新失败,请检查网络后重试!"
|
ECHO r "AutoUpdate 脚本更新失败!"
|
||||||
EXIT 1
|
EXIT 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -388,19 +387,18 @@ function GET_CLOUD_FW() {
|
||||||
eval X="$(GET_VARIABLE REGEX_Firmware ${Default_Variable})"
|
eval X="$(GET_VARIABLE REGEX_Firmware ${Default_Variable})"
|
||||||
case $1 in
|
case $1 in
|
||||||
[Aa]ll)
|
[Aa]ll)
|
||||||
Y="$(egrep -o "${X}" ${Running_Path}/API | sort | uniq)"
|
egrep -o "${X}" ${Running_Path}/API | sort | uniq | grep -v "^$"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
Y="$(egrep -o "${X}" ${Running_Path}/API | awk 'END {print}')"
|
Y=$(egrep -o "${X}" ${Running_Path}/API | awk 'END {print}')
|
||||||
|
[[ -n ${Y} ]] && echo ${Y}
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
[[ -n ${Y} ]] && echo ${Y}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function GET_CLOUD_VERSION() {
|
function GET_CLOUD_VERSION() {
|
||||||
local X
|
local X
|
||||||
X="$(GET_CLOUD_FW $1 | egrep -o "R[0-9].*202[1-2][0-9]+")"
|
GET_CLOUD_FW $1 | egrep -o "R[0-9.]+-[0-9]+"
|
||||||
[[ -n ${X} ]] && echo ${X}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function GET_CLOUD_FW_SIZE() {
|
function GET_CLOUD_FW_SIZE() {
|
||||||
|
@ -606,7 +604,7 @@ function DOWNLOADER() {
|
||||||
local DL_Downloader DL_Name DL_URL DL_Path DL_Retries DL_Timeout DL_Type DL_Final Quiet_Mode No_URL_Name Print_Mode DL_Retires_All DL_URL_Final
|
local DL_Downloader DL_Name DL_URL DL_Path DL_Retries DL_Timeout DL_Type DL_Final Quiet_Mode No_URL_Name Print_Mode DL_Retires_All DL_URL_Final
|
||||||
LOGGER "开始解析传入参数 ..."
|
LOGGER "开始解析传入参数 ..."
|
||||||
LOGGER "[$*]"
|
LOGGER "[$*]"
|
||||||
# --dl 下载器 --file-name 文件名称 --no-url-name --url 下载地址1@@重试次数&&下载地址2@@重试次数 --path 保存位置 --timeout 超时 --type 类型 --skip 文件 时间(分) --quiet --print
|
# --dl 下载器 --file-name 文件名称 --no-url-name --url 下载地址1@@重试次数 下载地址2@@重试次数 --path 保存位置 --timeout 超时 --type 类型 --skip 文件 时间(分) --quiet --print
|
||||||
while [[ $1 ]];do
|
while [[ $1 ]];do
|
||||||
case $1 in
|
case $1 in
|
||||||
--dl)
|
--dl)
|
||||||
|
@ -648,8 +646,14 @@ function DOWNLOADER() {
|
||||||
--url)
|
--url)
|
||||||
shift
|
shift
|
||||||
DL_URL=($(echo $@ | egrep -o "https://.*@@[0-9]+|https://.*@@[0-9]+|ftp://.*@@[0-9]+"))
|
DL_URL=($(echo $@ | egrep -o "https://.*@@[0-9]+|https://.*@@[0-9]+|ftp://.*@@[0-9]+"))
|
||||||
DL_URL_Count="${#DL_URL[@]}"
|
[[ -z ${DL_URL[*]} ]] && {
|
||||||
DL_Retires_All="$(echo ${DL_URL[*]} | egrep -o "@@[0-9]+" | egrep -o "[0-9]+" | awk '{Sum += $1};END {print Sum}')"
|
DL_URL=($1)
|
||||||
|
DL_URL_Count="${#DL_URL[@]}"
|
||||||
|
DL_Retires_All="${DL_URL_Count}"
|
||||||
|
} || {
|
||||||
|
DL_Retires_All="$(echo ${DL_URL[*]} | egrep -o "@@[0-9]+" | egrep -o "[0-9]+" | awk '{Sum += $1};END {print Sum}')"
|
||||||
|
DL_URL_Count="${#DL_URL[@]}"
|
||||||
|
}
|
||||||
LOGGER "URL 数量: [${DL_URL_Count}] 总重试次数: [${DL_Retires_All}]"
|
LOGGER "URL 数量: [${DL_URL_Count}] 总重试次数: [${DL_Retires_All}]"
|
||||||
while [[ $1 ]];do
|
while [[ $1 ]];do
|
||||||
[[ $1 =~ '--' ]] && break
|
[[ $1 =~ '--' ]] && break
|
||||||
|
@ -749,7 +753,7 @@ function DOWNLOADER() {
|
||||||
local E=0 u;while [[ ${E} != ${DL_URL_Count} ]];do
|
local E=0 u;while [[ ${E} != ${DL_URL_Count} ]];do
|
||||||
DL_URL_Cache="${DL_URL[$E]}"
|
DL_URL_Cache="${DL_URL[$E]}"
|
||||||
DL_Retries="${DL_URL_Cache##*@@}"
|
DL_Retries="${DL_URL_Cache##*@@}"
|
||||||
[[ -z ${DL_Retries} ]] && DL_Retries=1
|
[[ -z ${DL_Retries} || ! ${DL_Retries} == [0-9] ]] && DL_Retries=1
|
||||||
DL_URL_Final="${DL_URL_Cache%*@@*}"
|
DL_URL_Final="${DL_URL_Cache%*@@*}"
|
||||||
LOGGER "当前 URL: [${DL_URL_Final}] URL 重试次数: [${DL_Retries}]"
|
LOGGER "当前 URL: [${DL_URL_Final}] URL 重试次数: [${DL_Retries}]"
|
||||||
for u in $(seq ${DL_Retries});do
|
for u in $(seq ${DL_Retries});do
|
||||||
|
@ -818,12 +822,12 @@ function REMOVE_CACHE() {
|
||||||
LOGGER "AutoUpdate 缓存清理完成!"
|
LOGGER "AutoUpdate 缓存清理完成!"
|
||||||
}
|
}
|
||||||
|
|
||||||
function AutoUpdate_LOG() {
|
function LOG() {
|
||||||
[[ -z $1 ]] && {
|
[[ -z $1 ]] && {
|
||||||
[[ -s ${Log_Path}/AutoUpdate.log ]] && {
|
[[ -s ${Log_Path}/AutoUpdate.log ]] && {
|
||||||
TITLE && echo
|
TITLE && echo
|
||||||
LOGGER "Opening log file: [${Log_Path}/AutoUpdate.log] ..."
|
|
||||||
cat ${Log_Path}/AutoUpdate.log
|
cat ${Log_Path}/AutoUpdate.log
|
||||||
|
EXIT 0
|
||||||
}
|
}
|
||||||
} || {
|
} || {
|
||||||
while [[ $1 ]];do
|
while [[ $1 ]];do
|
||||||
|
@ -905,7 +909,7 @@ function NETWORK_CHECK() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function AutoUpdate_Main() {
|
function AutoUpdate_Main() {
|
||||||
if [[ ! $1 == -H && ! $1 == --help ]];then
|
if [[ ! $1 =~ (-H|--help) ]];then
|
||||||
LOGGER "[${COMMAND}] 开始运行"
|
LOGGER "[${COMMAND}] 开始运行"
|
||||||
[[ ! -f ${Default_Variable} ]] && {
|
[[ ! -f ${Default_Variable} ]] && {
|
||||||
ECHO r "脚本运行环境检测失败,无法正常运行脚本!"
|
ECHO r "脚本运行环境检测失败,无法正常运行脚本!"
|
||||||
|
@ -920,8 +924,6 @@ function AutoUpdate_Main() {
|
||||||
EXIT 1
|
EXIT 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
LOGGER_Block=1
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[[ -z $* ]] && UPGRADE $*
|
[[ -z $* ]] && UPGRADE $*
|
||||||
|
@ -944,8 +946,9 @@ function AutoUpdate_Main() {
|
||||||
;;
|
;;
|
||||||
--url)
|
--url)
|
||||||
Custom_URL="${Input[$((${E} + 1))]}"
|
Custom_URL="${Input[$((${E} + 1))]}"
|
||||||
[[ -z ${Custom_URL} ]] && {
|
[[ -z ${Custom_URL} || ! ${Custom_URL} =~ (https://*|http://*|ftp://*) ]] && {
|
||||||
ECHO r "请输入正确的链接!"
|
ECHO r "链接格式错误,请输入正确的链接!"
|
||||||
|
EXIT 1
|
||||||
}
|
}
|
||||||
;;
|
;;
|
||||||
-D)
|
-D)
|
||||||
|
@ -1027,8 +1030,9 @@ function AutoUpdate_Main() {
|
||||||
[[ -z $* ]] && echo "${CURRENT_Version}" && EXIT 1
|
[[ -z $* ]] && echo "${CURRENT_Version}" && EXIT 1
|
||||||
case "$1" in
|
case "$1" in
|
||||||
[Cc]loud)
|
[Cc]loud)
|
||||||
|
shift
|
||||||
GET_API
|
GET_API
|
||||||
GET_CLOUD_VERSION $2
|
GET_CLOUD_VERSION $*
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
SHELL_HELP
|
SHELL_HELP
|
||||||
|
@ -1074,6 +1078,7 @@ function AutoUpdate_Main() {
|
||||||
[[ -z $* ]] && echo ${Version} && EXIT 0
|
[[ -z $* ]] && echo ${Version} && EXIT 0
|
||||||
case "$1" in
|
case "$1" in
|
||||||
[Cc]loud)
|
[Cc]loud)
|
||||||
|
Script_URL="$(URL_X ${Github_Raw}/Scripts/AutoUpdate.sh G@@1)"
|
||||||
DOWNLOADER --dl ${DOWNLOADERS} --url ${Script_URL} --path /tmp --print | egrep -o "V[0-9].+"
|
DOWNLOADER --dl ${DOWNLOADERS} --url ${Script_URL} --path /tmp --print | egrep -o "V[0-9].+"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
@ -1083,6 +1088,7 @@ function AutoUpdate_Main() {
|
||||||
;;
|
;;
|
||||||
-x)
|
-x)
|
||||||
shift
|
shift
|
||||||
|
Script_URL="$(URL_X ${Github_Raw}/Scripts/AutoUpdate.sh G@@1 F@@1 X@@1)"
|
||||||
[[ $(NETWORK_CHECK 223.5.5.5 2) == false ]] && {
|
[[ $(NETWORK_CHECK 223.5.5.5 2) == false ]] && {
|
||||||
ECHO r "网络连接错误,请稍后再试!"
|
ECHO r "网络连接错误,请稍后再试!"
|
||||||
EXIT 1
|
EXIT 1
|
||||||
|
@ -1110,8 +1116,7 @@ function AutoUpdate_Main() {
|
||||||
;;
|
;;
|
||||||
-L | --log)
|
-L | --log)
|
||||||
shift
|
shift
|
||||||
AutoUpdate_LOG $*
|
LOG $*
|
||||||
EXIT 2
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
SHELL_HELP
|
SHELL_HELP
|
||||||
|
|
Loading…
Reference in New Issue