V6.2.2 固件下载添加 ghproxy 镜像加速

This commit is contained in:
Hyy2001X 2021-06-23 13:55:52 +08:00
parent 35fca382ea
commit 9d9e3be18a
1 changed files with 44 additions and 44 deletions

View File

@ -56,24 +56,25 @@ SHOW_VARIABLE() {
cat <<EOF cat <<EOF
设备名称: $(uname -n) / ${TARGET_PROFILE} 设备名称: $(uname -n) / ${TARGET_PROFILE}
固件作者: ${Author}
默认设备: ${Default_Device}
软件架构: ${TARGET_SUBTARGET}
固件版本: ${CURRENT_Version} 固件版本: ${CURRENT_Version}
固件作者: ${Author}
软件架构: ${TARGET_SUBTARGET}
作者仓库: ${Github} 作者仓库: ${Github}
源码仓库: https://github.com/${Openwrt_Author}/${Openwrt_Repo_Name}:${Openwrt_Branch} OpenWrt 源码: https://github.com/${Openwrt_Author}/${Openwrt_Repo_Name}:${Openwrt_Branch}
Release API: ${Github_Tag_URL} Release API: ${Github_API}
固件格式-框架: $(GET_VARIABLE AutoBuild_Firmware ${Default_Variable}) 固件格式-框架: $(GET_VARIABLE AutoBuild_Firmware ${Default_Variable})
固件名称-框架: $(GET_VARIABLE Egrep_Firmware ${Default_Variable}) 固件名称-框架: $(GET_VARIABLE Egrep_Firmware ${Default_Variable})
默认下载地址: ${Github_Release_URL}
固件保存位置: ${FW_SAVE_PATH}
固件格式: ${Firmware_Type} 固件格式: ${Firmware_Type}
Release URL: ${Github_Release_URL}
FastGit URL: ${Release_FastGit_URL}
Github Proxy URL: ${Release_Goproxy_URL}
固件保存位置: ${FW_SAVE_PATH}
log 文件: ${log_Path}/AutoUpdate.log log 文件: ${log_Path}/AutoUpdate.log
EOF EOF
[[ ${TARGET_PROFILE} == x86_64 ]] && { [[ ${TARGET_PROFILE} == x86_64 ]] && {
echo "引导模式: ${x86_64_Boot}" echo "x86_64 引导模式: ${x86_64_Boot}"
} }
EXIT 2 EXIT 0
} }
EXIT() { EXIT() {
@ -139,17 +140,16 @@ LOAD_VARIABLE() {
} }
shift shift
done done
[[ -z ${TARGET_PROFILE} && -n ${Default_Device} ]] && TARGET_PROFILE="${Default_Device}"
[[ -z ${TARGET_PROFILE} ]] && TARGET_PROFILE="$(jsonfilter -e '@.model.id' < /etc/board.json | tr ',' '_')" [[ -z ${TARGET_PROFILE} ]] && TARGET_PROFILE="$(jsonfilter -e '@.model.id' < /etc/board.json | tr ',' '_')"
[[ -z ${TARGET_PROFILE} ]] && TIME r "获取设备名称失败,无法执行更新!" && EXIT 1 [[ -z ${TARGET_PROFILE} ]] && TIME r "获取设备名称失败,无法执行更新!" && EXIT 1
[[ -z ${CURRENT_Version} ]] && CURRENT_Version=未知 [[ -z ${CURRENT_Version} ]] && CURRENT_Version=未知
[[ -z ${FW_SAVE_PATH} ]] && FW_SAVE_PATH=/tmp/Downloads [[ -z ${FW_SAVE_PATH} ]] && FW_SAVE_PATH=/tmp/Downloads
Github_Release_URL="${Github}/releases/download/AutoUpdate" Github_Release_URL="${Github}/releases/download/AutoUpdate"
FW_Author="${Github##*com/}" FW_Author="${Github##*com/}"
Github_Tag_URL="https://api.github.com/repos/${FW_Author}/releases/latest" Github_API="https://api.github.com/repos/${FW_Author}/releases/latest"
Github_Proxy_URL="https://download.fastgit.org" Release_URL="https://github.com/${FW_Author}/releases/download/AutoUpdate"
FW_NoProxy_URL="https://github.com/${FW_Author}/releases/download/AutoUpdate" Release_FastGit_URL="https://download.fastgit.org/${FW_Author}/releases/download/AutoUpdate"
FW_Proxy_URL="${Github_Proxy_URL}/${FW_Author}/releases/download/AutoUpdate" Release_Goproxy_URL="https://ghproxy.com/${Release_URL}"
case ${TARGET_PROFILE} in case ${TARGET_PROFILE} in
x86_64) x86_64)
case ${Firmware_Type} in case ${Firmware_Type} in
@ -286,7 +286,7 @@ FW_LOGGER() {
FW_Version="$1" FW_Version="$1"
;; ;;
esac esac
${Wget_Head} --timeout 3 ${FW_NoProxy_URL}/Update_Logs.json -O ${Update_Logs_Path}/Update_Logs.json ${Downloader} ${Release_URL}/Update_Logs.json -O ${Update_Logs_Path}/Update_Logs.json
[[ $? == 0 ]] && { [[ $? == 0 ]] && {
Update_Log=$(jsonfilter -e '@["'"""${TARGET_PROFILE}"""'"]["'"""${FW_Version}"""'"]' < ${Update_Logs_Path}/Update_Logs.json) Update_Log=$(jsonfilter -e '@["'"""${TARGET_PROFILE}"""'"]["'"""${FW_Version}"""'"]' < ${Update_Logs_Path}/Update_Logs.json)
rm -f ${Update_Logs_Path}/Update_Logs.json rm -f ${Update_Logs_Path}/Update_Logs.json
@ -306,7 +306,7 @@ FW_LOGGER() {
GET_CLOUD_VERSION() { GET_CLOUD_VERSION() {
[[ ! -d ${FW_SAVE_PATH} ]] && mkdir -p ${FW_SAVE_PATH} [[ ! -d ${FW_SAVE_PATH} ]] && mkdir -p ${FW_SAVE_PATH}
rm -f ${FW_SAVE_PATH}/Github_Tags rm -f ${FW_SAVE_PATH}/Github_Tags
${Wget_Head} --timeout 5 ${Github_Tag_URL} -O ${FW_SAVE_PATH}/Github_Tags ${Downloader} ${Github_API} -O ${FW_SAVE_PATH}/Github_Tags
[[ ! $? == 0 || ! -f ${FW_SAVE_PATH}/Github_Tags ]] && { [[ ! $? == 0 || ! -f ${FW_SAVE_PATH}/Github_Tags ]] && {
[[ $1 == check ]] && echo "获取失败" > /tmp/Cloud_Version [[ $1 == check ]] && echo "获取失败" > /tmp/Cloud_Version
TIME r "检查更新失败,请稍后重试!" TIME r "检查更新失败,请稍后重试!"
@ -349,7 +349,7 @@ PREPARE_UPGRADES() {
} }
[[ $1 == -P || $1 == --proxy ]] && { [[ $1 == -P || $1 == --proxy ]] && {
Proxy_Mode=1 Proxy_Mode=1
Proxy_Echo="[FastGit] " Proxy_Echo="[Proxy] "
} }
[[ $1 =~ path= ]] && { [[ $1 =~ path= ]] && {
[[ -z $(echo $1 | cut -d "=" -f2) ]] && TIME r "固件保存目录不能为空!" && EXIT 1 [[ -z $(echo $1 | cut -d "=" -f2) ]] && TIME r "固件保存目录不能为空!" && EXIT 1
@ -389,7 +389,7 @@ PREPARE_UPGRADES() {
MSG_2=" [强制刷写]" MSG_2=" [强制刷写]"
Upgrade_Option="${Upgrade_Option} -F" Upgrade_Option="${Upgrade_Option} -F"
} }
[[ $Test_Mode == 1 ]] && Wget_Head="wget --no-check-certificate" [[ ${Test_Mode} == 1 ]] && Downloader="wget --no-check-certificate --timeout 5"
TIME g "执行: ${Proxy_Echo}${MSG}${TAIL_MSG}${MSG_2}" TIME g "执行: ${Proxy_Echo}${MSG}${TAIL_MSG}${MSG_2}"
if [[ $(CHECK_PKG curl) == true && ${Proxy_Mode} == 0 ]];then if [[ $(CHECK_PKG curl) == true && ${Proxy_Mode} == 0 ]];then
Google_Check=$(curl -I -s --connect-timeout 3 google.com -w %{http_code} | tail -n1) Google_Check=$(curl -I -s --connect-timeout 3 google.com -w %{http_code} | tail -n1)
@ -404,8 +404,8 @@ PREPARE_UPGRADES() {
EXIT 1 EXIT 1
} }
[[ ${Proxy_Mode} == 1 ]] && { [[ ${Proxy_Mode} == 1 ]] && {
FW_URL="${FW_Proxy_URL}" FW_URL="${Release_FastGit_URL}"
} || FW_URL="${FW_NoProxy_URL}" } || FW_URL="${Release_URL}"
cat <<EOF cat <<EOF
固件作者: ${FW_Author%/*} 固件作者: ${FW_Author%/*}
@ -433,23 +433,23 @@ EOF
;; ;;
esac esac
Retry_Times=5 Retry_Times=5
TIME "正在下载固件,请耐心等待..." TIME "${Proxy_Echo}正在下载固件,请耐心等待..."
while [[ ${Retry_Times} -ge 0 ]];do while [[ ${Retry_Times} -ge 0 ]];do
if [[ ! ${PROXY_Mode} == 1 ]];then if [[ ! ${PROXY_Mode} == 1 && ${Retry_Times} == 4 ]];then
[[ ${Retry_Times} == 4 ]] && { TIME g "尝试使用 [FastGit] 镜像加速下载固件!"
TIME g "尝试使用 [FastGit] 镜像加速下载固件!" FW_URL="${Release_FastGit_URL}"
FW_URL="${FW_Proxy_URL}"
}
fi fi
[[ ${Retry_Times} == 2 ]] && { [[ ${Retry_Times} == 3 ]] && {
FW_URL="${FW_NoProxy_URL}" TIME g "尝试使用 [Github Proxy] 镜像加速下载固件!"
FW_URL="${Release_Goproxy_URL}"
} }
[[ ${Retry_Times} == 2 ]] && FW_URL="${Github_Release_URL}"
if [[ ${Retry_Times} == 0 ]];then if [[ ${Retry_Times} == 0 ]];then
TIME r "固件下载失败,请检查网络后重试!" TIME r "固件下载失败,请检查网络后重试!"
EXIT 1 EXIT 1
else else
${Wget_Head} --timeout 5 "${FW_URL}/${FW_Name}" -O ${FW_SAVE_PATH}/${FW_Name} echo "${Downloader} "${FW_URL}/${FW_Name}" -O ${FW_SAVE_PATH}/${FW_Name}"
[[ $? == 0 ]] && TIME y "固件下载成功!" && break [[ ! $? == 0 ]] && TIME y "固件下载成功!" && break
fi fi
Retry_Times=$((${Retry_Times} - 1)) Retry_Times=$((${Retry_Times} - 1))
TIME r "下载失败,剩余尝试次数: ${Retry_Times}" TIME r "下载失败,剩余尝试次数: ${Retry_Times}"
@ -633,7 +633,7 @@ AutoUpdate_Main() {
[[ -f ${FILE} ]] && FILE="${FILE}-$(RANDOM 5)" [[ -f ${FILE} ]] && FILE="${FILE}-$(RANDOM 5)"
} || { } || {
[[ ! -d $1 ]] && mkdir -p $1 [[ ! -d $1 ]] && mkdir -p $1
FILE="$1/Openwrt-Backups-$(date +%Y-%m-%d)-$(RANDOM 5)" FILE="$1/$(uname -n)-Backups-$(date +%Y-%m-%d)-$(RANDOM 5)"
} }
[[ ! ${FILE} =~ tar.gz ]] && FILE="${FILE}.tar.gz" [[ ! ${FILE} =~ tar.gz ]] && FILE="${FILE}.tar.gz"
TIME "Saving config files to [${FILE}] ..." TIME "Saving config files to [${FILE}] ..."
@ -678,19 +678,19 @@ AutoUpdate_Main() {
done done
} }
export Version=V6.2.1 Version=V6.2.2
export log_Path=/tmp log_Path=/tmp
export Update_Logs_Path=/tmp Update_Logs_Path=/tmp
export Upgrade_Command=sysupgrade Upgrade_Command=sysupgrade
export Default_Variable=/etc/AutoBuild/Default_Variable Default_Variable=/etc/AutoBuild/Default_Variable
export Custom_Variable=/etc/AutoBuild/Custom_Variable Custom_Variable=/etc/AutoBuild/Custom_Variable
export Wget_Head="wget -q --no-check-certificate" Downloader="wget -q --no-check-certificate --timeout 5"
export White="\e[0m" White="\e[0m"
export Yellow="\e[33m" Yellow="\e[33m"
export Red="\e[31m" Red="\e[31m"
export Blue="\e[34m" Blue="\e[34m"
export Grey="\e[36m" Grey="\e[36m"
export Green="\e[32m" Green="\e[32m"
AutoUpdate_Main $* AutoUpdate_Main $*