V6.4.5 同步 AutoBuild_Function.sh 改动
This commit is contained in:
parent
1295df0c0a
commit
2bfa03cf6c
|
@ -9,28 +9,29 @@ TITLE() {
|
|||
|
||||
SHELL_HELP() {
|
||||
TITLE
|
||||
echo -e "\n当前指令: ${Run_Command}"
|
||||
cat <<EOF
|
||||
|
||||
使用方法: $0 [<path=>] [-P] [-n] [-f] [-u]
|
||||
$0 [<更新脚本>] [-x/-x path=<>/-x url=<>]
|
||||
使用方法: $0 [-n] [-f] [-u] [-F] [-P] [path=<Path>]
|
||||
$0 [-x] [path=<Path>] [url=<URL>]
|
||||
|
||||
更新固件:
|
||||
-n 更新固件 [不保留配置]
|
||||
-f 跳过版本号验证,并强制刷写固件 [保留配置]
|
||||
-u 适用于定时更新 LUCI 的参数 [保留配置]
|
||||
-F 强制刷写固件
|
||||
--skip 跳过固件 SHA256 比对校验 (危险)
|
||||
path=<Path> 更新固件 (保存固件到提供的绝对路径 <Path>)
|
||||
-n 不保留配置更新固件 *
|
||||
-f 跳过版本号、SHA256验证,并强制刷写固件 (危险) *
|
||||
-u 适用于定时更新 LUCI 的参数 *
|
||||
-F 强制刷写固件 *
|
||||
-P 优先开启镜像加速下载固件 *
|
||||
--skip 跳过云端固件 SHA256 校验 (危险) *
|
||||
path=<Path> 保存固件到提供的绝对路径 <Path> *
|
||||
|
||||
更新脚本:
|
||||
-x 更新 AutoUpdate.sh 脚本
|
||||
-x path=<Path> 更新 AutoUpdate.sh 脚本 (保存脚本到提供的路径 <Path>)
|
||||
-x url=<URL> 更新 AutoUpdate.sh 脚本 (使用提供的地址 <URL> 更新脚本)
|
||||
-x path=<Path> 更新 AutoUpdate.sh 脚本 (保存脚本到提供的绝对路径 <Path>) *
|
||||
-x url=<URL> 更新 AutoUpdate.sh 脚本 (使用提供的地址 <URL> 更新脚本) *
|
||||
|
||||
其他参数:
|
||||
-P,--proxy 优先开启镜像加速
|
||||
-C <Github URL> 更改 Github 地址为提供的 <Github URL>
|
||||
-B <UEFI | Legacy> 指定 x86_64 设备下载 <UEFI | Legacy> 引导的固件 (危险)
|
||||
-B <UEFI | Legacy> 指定 x86 设备下载 <UEFI | Legacy> 引导的固件 (危险)
|
||||
-V < | cloud> 打印 <当前 | 云端> AutoUpdate.sh 版本号
|
||||
-E < | cloud | *> 打印 <当前 | 云端 | 指定版本> 版本的固件更新日志
|
||||
-H,--help 打印 AutoUpdate 帮助信息
|
||||
|
@ -57,23 +58,20 @@ SHOW_VARIABLE() {
|
|||
|
||||
设备名称: $(uname -n) / ${TARGET_PROFILE}
|
||||
固件版本: ${CURRENT_Version}
|
||||
其他参数: ${TARGET_BOARD} / ${TARGET_SUBTARGET}
|
||||
固件作者: ${Author}
|
||||
软件架构: ${TARGET_SUBTARGET}
|
||||
作者仓库: ${Github}
|
||||
OpenWrt 源码: https://github.com/${Openwrt_Maintainer}/${OP_REPO_NAME}:${OP_BRANCH}
|
||||
Release API: ${Github_API}
|
||||
固件格式-框架: $(GET_VARIABLE AutoBuild_Firmware ${Default_Variable})
|
||||
固件名称-框架: $(GET_VARIABLE Egrep_Firmware ${Default_Variable})
|
||||
固件格式: ${Firmware_Type}
|
||||
固件作者 URL: ${Github}
|
||||
Release URL: ${Github_Release_URL}
|
||||
FastGit URL: ${Release_FastGit_URL}
|
||||
Github Proxy URL: ${Release_Goproxy_URL}
|
||||
固件保存位置: ${AutoUpdate_Path}
|
||||
运行日志: ${AutoUpdate_Log_Path}/AutoUpdate.log
|
||||
Release API: ${Github_API}
|
||||
OpenWrt 源码 URL: https://github.com/${OP_Maintainer}/${OP_REPO_NAME}:${OP_BRANCH}
|
||||
固件匹配框架: $(GET_VARIABLE Egrep_Firmware ${Default_Variable})
|
||||
固件格式: ${Firmware_Type}
|
||||
固件保存路径: ${AutoUpdate_Path}
|
||||
运行日志路径: ${AutoUpdate_Log_Path}/AutoUpdate.log
|
||||
Downloader: ${Downloader}
|
||||
EOF
|
||||
[[ ${TARGET_PROFILE} == x86_64 ]] && {
|
||||
echo "x86_64 引导模式: ${x86_64_Boot}"
|
||||
[[ ${TARGET_BOARD} == x86 ]] && {
|
||||
echo "x86 固件引导模式: ${x86_Boot}"
|
||||
}
|
||||
EXIT 0
|
||||
}
|
||||
|
@ -106,12 +104,12 @@ LIST_ENV() {
|
|||
local X
|
||||
cat /etc/AutoBuild/*_Variable | grep -v '#' | while read X;do
|
||||
[[ ${X} =~ "=" ]] && {
|
||||
case $1 in
|
||||
case "$1" in
|
||||
1 | 2)
|
||||
[[ -n $(echo ${X} | cut -d "=" -f1) ]] && echo ${X} | cut -d "=" -f$1
|
||||
[[ -n $(echo "${X}" | cut -d "=" -f1) ]] && echo "${X}" | cut -d "=" -f$1
|
||||
;;
|
||||
0)
|
||||
echo ${X}
|
||||
echo "${X}"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
@ -119,9 +117,8 @@ LIST_ENV() {
|
|||
}
|
||||
|
||||
EXIT() {
|
||||
local RUN_TYPE
|
||||
LOGGER "Command :[${Run_Command}] Finished $1"
|
||||
exit 0
|
||||
exit
|
||||
}
|
||||
|
||||
ECHO() {
|
||||
|
@ -129,7 +126,7 @@ ECHO() {
|
|||
[[ -z $1 ]] && {
|
||||
echo -ne "\n${Grey}[$(date "+%H:%M:%S")]${White} "
|
||||
} || {
|
||||
case $1 in
|
||||
case "$1" in
|
||||
r) Color="${Red}";;
|
||||
g) Color="${Green}";;
|
||||
b) Color="${Blue}";;
|
||||
|
@ -168,9 +165,10 @@ GET_SHA256SUM() {
|
|||
ECHO r "未检测到文件: [$1] 或该文件为空,无法计算 SHA256 值!"
|
||||
EXIT 1
|
||||
}
|
||||
LOGGER "[GET_SHA256SUM] Target File: $1"
|
||||
local Result=$(sha256sum $1 | cut -c1-$2)
|
||||
[[ -n ${Result} ]] && echo ${Result}
|
||||
LOGGER "[GET_SHA256SUM] File [$1] Calculated result: ${Result}"
|
||||
LOGGER "[GET_SHA256SUM] Calculated result: ${Result}"
|
||||
}
|
||||
|
||||
GET_VARIABLE() {
|
||||
|
@ -198,14 +196,14 @@ LOAD_VARIABLE() {
|
|||
Release_URL="https://github.com/${FW_Author}/releases/download/AutoUpdate"
|
||||
Release_FastGit_URL="https://download.fastgit.org/${FW_Author}/releases/download/AutoUpdate"
|
||||
Release_Goproxy_URL="https://ghproxy.com/${Release_URL}"
|
||||
case ${TARGET_PROFILE} in
|
||||
x86_64)
|
||||
case ${Firmware_Type} in
|
||||
case "${TARGET_BOARD}" in
|
||||
x86)
|
||||
case "${Firmware_Type}" in
|
||||
img.gz | img)
|
||||
[[ -z ${x86_64_Boot} ]] && {
|
||||
[[ -z ${x86_Boot} ]] && {
|
||||
[ -d /sys/firmware/efi ] && {
|
||||
x86_64_Boot=UEFI
|
||||
} || x86_64_Boot=Legacy
|
||||
x86_Boot=UEFI
|
||||
} || x86_Boot=Legacy
|
||||
}
|
||||
;;
|
||||
*)
|
||||
|
@ -265,7 +263,7 @@ CHANGE_BOOT() {
|
|||
[[ -z $1 ]] && SHELL_HELP
|
||||
case "$1" in
|
||||
UEFI | Legacy)
|
||||
EDIT_VARIABLE edit ${Custom_Variable} x86_64_Boot $1
|
||||
EDIT_VARIABLE edit ${Custom_Variable} x86_Boot $1
|
||||
echo "ON" > /force_dump
|
||||
ECHO r "警告: 更换引导方式后更新固件后可能导致设备无法正常启动!"
|
||||
ECHO y "固件引导格式已指定为: [$1],AutoUpdate 将在下一次更新时执行强制刷写固件!"
|
||||
|
@ -330,10 +328,10 @@ CHECK_DEPENDS() {
|
|||
GET_FW_LOG() {
|
||||
local Update_Log
|
||||
case "$1" in
|
||||
local)
|
||||
[Ll]ocal)
|
||||
FW_Version="${CURRENT_Version}"
|
||||
;;
|
||||
cloud)
|
||||
[Cc]loud)
|
||||
[[ -z ${CLOUD_Firmware_Version} ]] && GET_CLOUD_VERSION
|
||||
FW_Version="${CLOUD_Firmware_Version}"
|
||||
;;
|
||||
|
@ -346,10 +344,9 @@ GET_FW_LOG() {
|
|||
[[ $? == 0 ]] && {
|
||||
Update_Log=$(jsonfilter -e '@["'"""${TARGET_PROFILE}"""'"]["'"""${FW_Version}"""'"]' < ${AutoUpdate_Path}/Update_Logs.json)
|
||||
rm -f ${AutoUpdate_Path}/Update_Logs.json
|
||||
} || return
|
||||
[[ -z ${Update_Log} ]] && return
|
||||
echo -e "\n${Grey}${FW_Version} for ${TARGET_PROFILE} 更新日志:"
|
||||
echo -e "\n${Green}${Update_Log}${White}"
|
||||
echo -e "\n${Grey}${FW_Version} for ${TARGET_PROFILE} 更新日志:"
|
||||
echo -e "\n${Green}${Update_Log}${White}"
|
||||
}
|
||||
}
|
||||
|
||||
GET_CLOUD_INFO() {
|
||||
|
@ -404,7 +401,7 @@ PREPARE_UPGRADES() {
|
|||
Test_Mode=1
|
||||
Special_Commands="${Special_Commands} [测试模式]"
|
||||
;;
|
||||
-P | --proxy)
|
||||
-P)
|
||||
Proxy_Mode=1
|
||||
Special_Commands="${Special_Commands} [镜像加速]"
|
||||
;;
|
||||
|
@ -438,7 +435,7 @@ PREPARE_UPGRADES() {
|
|||
ECHO g "使用自定义固件保存路径: ${AutoUpdate_Path}"
|
||||
;;
|
||||
--verbose)
|
||||
Special_Commands="${Special_Commands} [打印详细信息]"
|
||||
Special_Commands="${Special_Commands} [详细信息]"
|
||||
;;
|
||||
*)
|
||||
SHELL_HELP
|
||||
|
@ -451,6 +448,7 @@ PREPARE_UPGRADES() {
|
|||
REMOVE_CACHE quiet
|
||||
if [[ $(CHECK_PKG curl) == true && ${Proxy_Mode} != 1 ]];then
|
||||
Google_Check=$(curl -I -s --connect-timeout 3 google.com -w %{http_code} | tail -n1)
|
||||
LOGGER "Google_Check: ${Google_Check}"
|
||||
[[ ${Google_Check} != 301 ]] && {
|
||||
ECHO r "Google 连接失败,优先使用镜像加速!"
|
||||
Proxy_Mode=1
|
||||
|
@ -468,7 +466,7 @@ PREPARE_UPGRADES() {
|
|||
|
||||
固件作者: ${FW_Author%/*}
|
||||
设备名称: $(uname -n) / ${TARGET_PROFILE}
|
||||
$([[ ${TARGET_PROFILE} == x86_64 ]] && echo "固件格式: ${Firmware_Type} / ${x86_64_Boot}" || echo "固件格式: ${Firmware_Type}")
|
||||
$([[ ${TARGET_BOARD} == x86 ]] && echo "固件格式: ${Firmware_Type} / ${x86_Boot}" || echo "固件格式: ${Firmware_Type}")
|
||||
|
||||
$(echo -e "当前固件版本: ${CURRENT_Version}${CURRENT_Type}")
|
||||
$(echo -e "云端固件版本: ${CLOUD_Firmware_Version}${CLOUD_Type}")
|
||||
|
@ -510,13 +508,13 @@ EOF
|
|||
Retry_Times=$((${Retry_Times} - 1))
|
||||
ECHO r "固件下载失败,剩余尝试次数: ${Retry_Times} 次"
|
||||
done
|
||||
if [[ ! ${Skip_SHA256} == 1 ]];then
|
||||
if [[ ! ${Skip_SHA256} == 1 || ! Force_Mode == 1 ]];then
|
||||
CURRENT_SHA256=$(GET_SHA256SUM ${AutoUpdate_Path}/${FW_Name} 5)
|
||||
CLOUD_SHA256=$(echo ${FW_Name} | egrep -o "[0-9a-z]+.${Firmware_Type}" | sed -r "s/(.*).${Firmware_Type}/\1/")
|
||||
[[ ${CURRENT_SHA256} != ${CLOUD_SHA256} ]] && {
|
||||
ECHO r "本地固件 SHA256 与云端比对校验失败 [${CURRENT_SHA256}],请检查网络后重试!"
|
||||
EXIT 1
|
||||
}
|
||||
} || LOGGER "固件 SHA256 比对通过!"
|
||||
fi
|
||||
case "${Firmware_Type}" in
|
||||
img.gz)
|
||||
|
@ -547,7 +545,7 @@ DO_UPGRADE() {
|
|||
ECHO g "正在更新固件,请耐心等待 ..."
|
||||
$*
|
||||
[[ $? -ne 0 ]] && {
|
||||
ECHO r "固件刷写失败,请尝试手动更新固件!"
|
||||
ECHO r "固件刷写失败,请尝试手动下载更新固件或附加 -F 参数强制刷写!"
|
||||
EXIT 1
|
||||
} || EXIT 0
|
||||
}
|
||||
|
@ -575,7 +573,7 @@ AutoUpdate_LOG() {
|
|||
}
|
||||
} || {
|
||||
while [[ $1 ]];do
|
||||
case $1 in
|
||||
case "$1" in
|
||||
path=/* | rm | del)
|
||||
:
|
||||
;;
|
||||
|
@ -628,7 +626,7 @@ AutoUpdate_Main() {
|
|||
fi
|
||||
|
||||
[[ -z $* ]] && PREPARE_UPGRADES $*
|
||||
[[ $1 =~ path= && ! $* =~ -x && ! $* =~ -U ]] && PREPARE_UPGRADES $*
|
||||
[[ $1 =~ path=/ && ! $* =~ -x && ! $* =~ -U ]] && PREPARE_UPGRADES $*
|
||||
[[ $1 =~ --skip ]] && PREPARE_UPGRADES $*
|
||||
[[ $* =~ -T || $* =~ --verbose ]] && {
|
||||
Downloader="$(echo ${Downloader/ --quiet / })"
|
||||
|
@ -637,7 +635,7 @@ AutoUpdate_Main() {
|
|||
|
||||
while [[ $1 ]];do
|
||||
case "$1" in
|
||||
-n | -f | -u | -T | -P | --proxy | -F | --verbose)
|
||||
-n | -f | -u | -T | -P | -F | --verbose)
|
||||
LOGGER "Downloader: ${DL} / ${Downloader}"
|
||||
PREPARE_UPGRADES $*
|
||||
;;
|
||||
|
@ -669,13 +667,13 @@ AutoUpdate_Main() {
|
|||
REMOVE_CACHE
|
||||
;;
|
||||
--check)
|
||||
shift && [[ -n $* ]] && SHELL_HELP
|
||||
shift && [[ -n $* ]] && SHELL_HELP
|
||||
CHECK_DEPENDS bash x86:gzip x86:wget-ssl uclient-fetch curl wget openssl which
|
||||
;;
|
||||
--env)
|
||||
shift
|
||||
[[ -z $* ]] && LIST_ENV 0 && EXIT 0
|
||||
case $1 in
|
||||
case "$1" in
|
||||
1 | 2)
|
||||
LIST_ENV $1
|
||||
;;
|
||||
|
@ -718,7 +716,7 @@ AutoUpdate_Main() {
|
|||
-x)
|
||||
shift
|
||||
while [[ $1 ]];do
|
||||
case $1 in
|
||||
case "$1" in
|
||||
url=* | path=/*)
|
||||
:
|
||||
;;
|
||||
|
@ -744,7 +742,7 @@ AutoUpdate_Main() {
|
|||
;;
|
||||
-B)
|
||||
shift
|
||||
[[ ${TARGET_PROFILE} != x86_64 ]] && SHELL_HELP
|
||||
[[ ${TARGET_BOARD} != x86 ]] && EXIT 1
|
||||
CHANGE_BOOT $1
|
||||
;;
|
||||
-C)
|
||||
|
@ -753,21 +751,22 @@ AutoUpdate_Main() {
|
|||
;;
|
||||
-E)
|
||||
shift
|
||||
[[ -z $1 ]] && GET_FW_LOG local show && EXIT 0
|
||||
case $1 in
|
||||
cloud)
|
||||
GET_FW_LOG $1 show
|
||||
[[ -z $* ]] && GET_FW_LOG local
|
||||
case "$1" in
|
||||
[Cc]loud)
|
||||
GET_FW_LOG $1
|
||||
;;
|
||||
*)
|
||||
[[ ! $1 =~ R ]] && SHELL_HELP || GET_FW_LOG -v $1 show
|
||||
[[ -z $* ]] && EXIT 0
|
||||
[[ ! $1 =~ R[0-9] ]] && SHELL_HELP || GET_FW_LOG -v $1
|
||||
;;
|
||||
esac
|
||||
EXIT
|
||||
;;
|
||||
-H | --help)
|
||||
-H | --[Hh]elp)
|
||||
SHELL_HELP
|
||||
;;
|
||||
-L | --list)
|
||||
-L | --[Ll]ist)
|
||||
shift && [[ -n $* ]] && SHELL_HELP
|
||||
SHOW_VARIABLE
|
||||
;;
|
||||
|
@ -777,8 +776,8 @@ AutoUpdate_Main() {
|
|||
echo ${CURRENT_Version}
|
||||
EXIT 0
|
||||
}
|
||||
case $1 in
|
||||
cloud | Cloud)
|
||||
case "$1" in
|
||||
[Cc]loud)
|
||||
GET_CLOUD_VERSION
|
||||
[[ -z ${CLOUD_Firmware_Version} ]] && echo "未知" || echo "${CLOUD_Firmware_Version}"
|
||||
;;
|
||||
|
@ -788,7 +787,7 @@ AutoUpdate_Main() {
|
|||
-V)
|
||||
shift
|
||||
case "$1" in
|
||||
cloud)
|
||||
[Cc]loud)
|
||||
Result="$(${Downloader} - ${AutoUpdate_Script_URL} | egrep -o "V[0-9].+")"
|
||||
;;
|
||||
*)
|
||||
|
@ -808,7 +807,7 @@ AutoUpdate_Main() {
|
|||
done
|
||||
}
|
||||
|
||||
Version=V6.4.4
|
||||
Version=V6.4.5
|
||||
AutoUpdate_Path=/tmp/AutoUpdate
|
||||
AutoUpdate_Log_Path=/tmp
|
||||
AutoUpdate_Script_URL=https://ghproxy.com/https://raw.githubusercontent.com/Hyy2001X/AutoBuild-Actions/master/Scripts/AutoUpdate.sh
|
||||
|
|
Loading…
Reference in New Issue